【技巧总结】Penetration Test Engineer[2]-Information gathering
2、信息收集
信息收集是属于前期交互阶段所需要了解的问题。
2.1、前期交互内容
签署授权文件:首要要和受测试方签订授权协议。
划定范围:指定了一个二级域名作为测试目标,那么其他二级域名在测试范围内。如果测试目标是在其他服务厂商,或者服务器上有其他额外的测试目标是否划入范围内。
情报搜集:开放渠道情报、网络踩点、识别目标防护机制(管理、网络、主机、应用)。
2.2、开放渠道情报
- 数据来源:搜索引擎提供的开放情报、社交网站、地方性门户、电子邮件服务提供商
- 关注点:企业情报、个人情报
2.3、网络踩点
- 创建目标列表:存活主机/版本信息/识别补丁级别/搜索脆弱的Web应用/确定封禁阈值/出错信息/可以攻击的脆弱端口/过时系统/虚拟化平台和虚拟机/存储基础设施
- 深度挖掘目标细节:端口扫描/SNMP探查/区域传送/SMTP反弹攻击/解析DNS与递归DNS服务器
2.4、踩点工具与方式
- whois:查询域名注册信息库、服务商、管理员邮箱地址、域名注册日期和过期日期
- nslookup:查询DNS解析信息
- GEOIP:根据IP定位经纬度,通过Google地图获取位置信息。
- Netcraft:查询DNS与IP信息分析,可以获取子站点、地理位置、DNS服务器地址、操作系统类型、服务器运行状况。
- IP反查:通过IP地址可以反查指向同一IP的DNS信息(旁站攻击)。www.ip-adress.com/reverse_ip/、http://s.tool.chinaz.com/same
- Google:GHDB(GoogleHackingDatabase)http://www.exploit-db.com/google-dorks/
- 列目录查找:Google搜索【intitle:parent directory】
- 查找敏感文件:Google搜索【Site:testfire.net filetype:xls】
- 登录页面:Google搜索【site:test.com login】
- 网络空间搜索引擎:fofa.so、ZoomEye、netcraft等
- ping:测试主机是否活跃
- nmap:端口扫描工具
2.5、漏洞扫描工具
- 主机漏洞扫描器:Nessus、OpenVAS、Nexpose、nmap
- 应用漏洞扫描器:AppScan、Burpsuite、AcunetixAWVS、W3AF
- nmap脚本:nmap -p 445 --script smb-vuln-ms17-010 10.10.10.1/24
2.6、信息收集关注的常见端口(服务)
- WEB 80
- MSSQL 1433
- MySQL 3306
- Oracle 1521
- Microsoft SMB 445
- VNC 5900,5901
- Remote Desktop 3389
2.7 口令生成器
- cupp
2.8 常用工具用法
1)NMAP
nmap在kail中已经安装好了,直接调用就可以。
- 默认扫描
nmap 172.18.0.18
- 网段扫描
nmap 172.18.0.0/24
- 扫描多个目标
nmap 172.18.0.2 172.18.0.11
- 详细描述输出扫描
加上-v参数进行详细的扫描日志输出
nmap -v 172.18.0.0/24
- 指定端口扫描
使用-p 端口可以进行指导的端口扫描。
nmap -p 80,22 172.18.0.0/24
扫描端口的时候还可以指定端口的范围进行扫描:
扫描同网段中开启20-100端口范围的的ip
nmap -p20-100 172.18.0.0/24
- 从文件中读取ip扫描
nmap -iL ip.txt
- 设置黑名单扫描ip
nmap可以设置黑名单扫描,不扫描敏感的ip,使用-exclude参数,进行单个ip的排除扫描
nmap 172.18.0.0/24 -exclude 172.18.0.1
- sP Ping扫描
使用-sP参数,对内网主机进行探测发现
nmap -sP 172.18.0.0/24
- PN 不进行Ping扫描
使用-PN参数,对内网进行No Ping扫描,PN No Ping 扫描,常用来绕过防火墙的检测。
- sS 半开放式扫描
使用-sS参数,对内网进行半开放式扫描。
若端口扫描没有完成一个完整的TCP连接,在扫描主机和目标主机的一指定端口建立连接时候只完成了前两次握手,在第三步时,扫描主机中断了本次连接,使连接没有完全建立起来,这样的端口扫描称为半连接扫描,也称为间接扫描。现有的半连接扫描有TCPSYN扫描和IP ID头dumb扫描等。
- sT TCP扫描
使用-sT参数,对内网进行TCP扫描
- sU UDP扫描
使用-sU参数,对目标靶机进行UDP扫描:
nmap -sU 172.18.0.16
因为一般情况下这个-sU扫描是测试某个单独的UDP端口是否正常通讯,所以一般-sU常与-P指定端口扫描参数配合使用:
nmap -sU -p 22,80 172.18.0.16
- sF FIN标志的数据包扫描
使用-sF参数,对内网进行FIN标志的数据包扫描,探测防火墙的状态,收到RST回复说明该端口关闭,否则说明是open或filtered状态。
nmap -sF 172.18.0.16
- sV Version版本检测扫描
nmap -sV 172.18.0.16
- O OS操作系统类型的探测
nmap -O 172.18.0.16
这里还可以使用--osscan-guess参数来猜测匹配的操作系统
nmap -O --osscan-guess 172.18.0.16
- traceroute 路由跟踪扫描
如果对外围的目标进行扫描的话,效果要好一点。
nmap -traceroute 172.18.0.2
- A 综合扫描
nmap -A 172.18.0.2
- 常见混合参数
探测同网段开着80端口的ip,并进行系统猜测扫描,并将过程-v详细输出。
nmap -v -p 80 -O --osscan-guess 172.18.0.0/24
对内网同网段的主机进行批量收集,只收集开了80和22端口的ip
nmap -sS -p 22,80 172.18.0.0/24
FIN扫描出内网中网段中开启MySQL数据库的所有主机
nmap -sF -p3306 172.18.0.0/24
- oN 标准输出
将标准输出直接写入指定的文件,对目标靶机的扫描结果以标准的形式导出为result.txt。
nmap -oN result.txt 172.18.0.3
- oX XML输出
XML提供了可供软件解析的稳定格式输出.
nmap -oX result.xml 172.18.0.3
- oS ScRipT KIdd|3 oUTpuT
脚本小子输出类似于交互工具输出,这是一个事后处理,适合于 'l33t HaXXorZ, 由于原来全都是大写的Nmap输出。这个选项和脚本小子开了玩笑,看上去似乎是为了 “帮助他们”。
nmap -oS result.xml 172.18.0.3
- oG Grep输出
Grep输出是一种简单格式,每行一个主机,可以 通过UNIX工具(如grep、awk、cut、sed、diff)和Perl方便地查找和分解。
nmap -oG result.txt 172.18.0.3
- oA 输出至所有格式
利用-oA选项 可将扫描结果以标准格式、XML格式和Grep格式一次性输出。分别存放在 .nmap,.xml和 .gnmap文件中。
nmap -oA resut 172.18.0.3
- NMAP设置时间参数模板
paranoid、sneaky 模式用于IDS躲避
Polite 模式降低了扫描 速度以使用更少的带宽和目标主机资源。
Normal 为默认模式,因此-T3 实际上是未做任何优化。
Aggressive 模式假设用户具有合适及可靠的网络从而加速扫描。
insane 模式假设用户具有特别快的网络或者愿意为获得速度而牺牲准确性。
【-T0 paranodi】
用于躲避IDS进行扫描,耗时非常的长。
nmap -T0 172.18.0.3
【-T1 sneaky】
用于躲避IDS进行扫描,耗时非常的长。
nmap -T1 172.18.0.3
【-T2 polite】
降低了扫描速度以使用更少的带宽和目标主机资源进行对目标靶机进行扫描
nmap -T2 172.18.0.3
【-T3 normal】
默认模式,因此-T3 实际上是未做任何优化的扫描目标靶机
nmap -T3 172.18.0.3
【-T4 Aggressive】
假设用户具有合适及可靠的网络从而加速对目标靶机的扫描。
nmap -T4 172.18.0.3
【-T5 insane】
假设用户具有特别快的网络或者愿意为获得速度而牺牲准确性的对目标靶机进行扫描。
nmap -T5 172.18.0.3
- NMAP调用脚本进行扫描
nmap 的脚本分类
- auth: 负责处理鉴权证书(绕开鉴权)的脚本
- broadcast: 在局域网内探查更多服务开启状况,如dhcp/dns/sqlserver等服务
- brute: 提供暴力破解方式,针对常见的应用如http/snmp等
- default: 使用-sC或-A选项扫描时候默认的脚本,提供基本脚本扫描能力
- discovery: 对网络进行更多的信息,如SMB枚举、SNMP查询等
- dos: 用于进行拒绝服务攻击
- exploit: 利用已知的漏洞入侵系统
- external: 利用第三方的数据库或资源,例如进行whois解析
- fuzzer: 模糊测试的脚本,发送异常的包到目标机,探测出潜在漏洞
- intrusive: 入侵性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽
- malware: 探测目标机是否感染了病毒、开启了后门等信息
- safe: 此类与intrusive相反,属于安全性脚本
- version: 负责增强服务与版本扫描(Version Detection)功能的脚本
- vuln: 负责检查目标机是否有常见的漏洞(Vulnerability),如是否有MS08_067
【nmap 脚本使用格式】
nmap具体的漏洞扫描脚本参考官方文档 : https://nmap.org/nsedoc/
nmap --script='$类别/$具体的脚本'
【脚本格式进阶】
-sC 根据端口识别的服务,调用默认脚本
--script=”Lua scripts” 调用的脚本名
--script-args=n1=v1,[n2=v2] 调用的脚本传递的参数
--script-args-file=filename 使用文本传递参数
--script-trace 显示所有发送和接收到的数据
--script-updatedb 更新脚本的数据库
--script-help=”Lua script” 显示指定脚本的帮助
尝试对模板靶机进行-sC扫描,根据端口识别服务自动调用默认脚本。
nmap -sC 172.18.0.10
【常用脚本扫描】
由于内网靶机开启的端口很少,服务也很少,脚本扫描没有太多的用武之地。下面写一些常见的调用脚本扫描以作了解使用。
对MySQL进行暴力破解
nmap --script=mysql-brute <target>
3306/tcp open mysql
| mysql-brute:
| Accounts
| root:root - Valid credentials
对MsSQL进行暴力破解
nmap -p 1433 --script ms-sql-brute --script-args userdb=customuser.txt,passdb=custompass.txt <host>
| ms-sql-brute:
| [192.168.100.128\TEST]
| No credentials found
| Warnings:
| sa: AccountLockedOut
| [192.168.100.128\PROD]
| Credentials found:
| webshop_reader:secret => Login Success
| testuser:secret1234 => PasswordMustChange
|_ lordvader:secret1234 => Login Success
对Oracle数据库进行暴力破解
nmap --script oracle-brute -p 1521 --script-args oracle-brute.sid=ORCL <host>
PORT STATE SERVICE REASON
1521/tcp open oracle syn-ack
| oracle-brute:
| Accounts
| system:powell => Account locked
| haxxor:haxxor => Valid credentials
| Statistics
|_ Perfomed 157 guesses in 8 seconds, average tps: 19
对PgSQL的暴力破解
nmap -p 5432 --script pgsql-brute <host>
5432/tcp open pgsql
| pgsql-brute:
| root:<empty> => Valid credentials
|_ test:test => Valid credentials
利用DNS进行子域名暴力破解
nmap --script dns-brute www.baidu.com
Starting Nmap 7.50 ( https://nmap.org ) at 2017-07-25 13:12 ?
Nmap scan report for www.baidu.com (180.97.33.108)
Host is up (0.018s latency).
Other addresses for www.baidu.com (not scanned): 180.97.33.10
Not shown: 998 filtered ports
PORT STATE SERVICE
80/tcp open http
443/tcp open https
Host script results:
| dns-brute:
| DNS Brute-force hostnames:
| admin.baidu.com - 10.26.109.19
| mx.baidu.com - 61.135.163.61
| svn.baidu.com - 10.65.211.174
| ads.baidu.com - 10.42.4.225 ...
...
Nmap done: 1 IP address (1 host up) scanned in 92.64 seconds
查询VMware服务器(vCenter,ESX,ESXi)SOAP API以提取版本信息。
nmap --script vmware-version -p443 10.0.1.4
Starting Nmap 7.50 ( https://nmap.org ) at 2017-07-25 12:26 ?D1ú±ê×?ê±??
Nmap scan report for 10.0.1.4
Host is up (0.0019s latency).
PORT STATE SERVICE
443/tcp open https
| vmware-version:
| Server version: VMware ESXi 6.5.0
| Build: 4887370
| Locale version: INTL 000
| OS type: vmnix-x86
|_ Product Line ID: embeddedEsx
Service Info: CPE: cpe:/o:vmware:ESXi:6.5.0
Nmap done: 1 IP address (1 host up) scanned in 6.28 seconds
2)BurpSuite
Burp Suite
是一个Web应用程序集成攻击平台,它包含了一系列burp
工具,这些工具之间有大量接口可以互相通信,这样设计的目的是为了促进和提高整个攻击的效率。平台中所有工具共享同一robust
框架,以便统一处理HTTP请求,持久性,认证,上游代理,日志记录,报警和可扩展性。 Burp Suite
允许攻击者结合手工和自动技术去枚举、分析、攻击Web
应用程序。这些不同的burp
工具通过协同工作,有效的分享信息,支持以某种工具中的信息为基础供另一种工具使用的方式发起攻击。
Proxy
提供一个直观、友好的用户界面,他的代理服务器包含非常详细的拦截规则,并能准确分析HTTP
消息的结构与内容。
Spider
爬行蜘蛛工具,可以用来抓取目标网站,以显示网站的内容,基本结构,和其他功能。
Scanner
Web
应用程序的安全漏洞进行自动发现工具。它被设计用于渗透测试,并密切与您现有的技术和方法,以适应执行手动和半自动化的Web
应用程序渗透测试。
Repeater
可让您手动重新发送单个HTTP
请求
Intruder
是burp
套件的优势,他提供一组特别有用的功能。它可以自动实施各种定制攻击,包括资源枚举、数据提取、模糊测试等常见漏洞等。在各种有效的扫描工具中,它能够以最细化、最简单的方式访问它生产的请求与响应,允许组合利用个人智能与该工具的控制优点。
Sequencer
对会话令牌,会话标识符或其他出于安全原因需要随机产生的键值的可预测性进行分析。
Decoder
转化成规范的形式编码数据,或转化成各种形式编码和散列的原始数据。它能够智能识别多种编码格式,使用启发式技术。
Comparer
是一个简单的工具,执行比较数据之间的任何两个项目(一个可视化的“差异”)。在攻击一个Web 应用程序的情况下,这一要求通常会出现当你想快速识别两个应用程序的响应之间的差异(例如,入侵者攻击的过程中收到的两种反应之间之间,或登录失败的反应使用有效的和无效的用户名)之间,或两个应用程序请求(例如,确定不同的行为引起不同的请求参数)。
Burp Target
组件主要包含站点地图、目标域2部分组成,他们帮助渗透测试人员更好地了解目标应用的整体状况、当前的工作涉及哪些目标域、分析可能存在的攻击面等信息。
3)SQLMAP
练习SQL注入可以使用sqli-labs。
- GET注入
# 测试注入
sqlmap.py -u "url"
# 获取数据库
sqlmap.py -u "http://172.18.0.10/Less-1/?id=1" --dbs
# 获取当前使用的数据库 --current-db
sqlmap.py -u "http://172.18.0.10/Less-1/?id=1" --current-db
# 获取数据表,-D为数据库名
sqlmap.py -u "http://172.18.0.10/Less-1/?id=1" -D "security" --tables
# 获取数据库列名,-T为数据库表名
sqlmap.py -u "http://172.18.0.10/Less-1/?id=1" -D "security" -T "users" --columns
# 获取指定字段的值
sqlmap.py -u "http://172.18.0.10/Less-1/?id=1" -D "security" -T "users" --dump -C"id,username,password"
# 语句总结
-u 指定目标url
--dbs 列出数据库系统中的数据库
--current-db 列出当前使用的数据库
--tables 列出数据库中的数据表
--columns 列出数据表中的字段
--dump 获取指定的数据
- POST注入-自动获取表单
# 自动获取form表单测试
sqlmap.py -u "http://172.18.0.2/Less-11/" --forms
# 使用--dbs列出数据库系统所有数据库
sqlmap.py -u "http://172.18.0.10/Less-1/?id=1" --forms --dbs
# 使用--current-db列出系统当前数据库
sqlmap.py -u "http://172.18.0.10/Less-1/?id=1" --forms --current-db
# 列出数据库中的数据表
sqlmap.py -u "http://172.18.0.10/Less-1/?id=1" --forms --tables -D "security"
# 使用--columns列出表中的字段
sqlmap.py -u "http://172.18.0.10/Less-1/?id=1" --forms --columns -D "security" -T "users"
# 使用--dump获取字段中的数据
sqlmap.py -u "http://172.18.0.10/Less-1/?id=1" --forms --dump -C"id,username,password" -D "security" -T "users"
- POST注入-从文件中加载HTTP请求
配置代理,使用BurpSuite抓取数据包,【Copy file】保存至桌面为xx.txt
GET /Less-1/?id=1 HTTP/1.1
Host: 172.18.0.10
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
使用-r
文件中加载HTTP请求
sqlmap.py -r C:\Users\admin\Desktop\xx.txt
- 绕过WAF
SQLMap下有一个名为tamper的目录,里面为绕过waf的脚本,使用--tamper选项可以使用。
示例为:(宽字节注入)绕过,
sqlmap.py -u "http://172.18.0.2/Less-32/?id=1" --batch -v 3 --tamper "unmagicquotes.py"
4)Metasploit
msfconsole
进入界面,Metasploit的辅助模块中提供了几款实用的端口扫描器。在线手册
https://www.offensive-security.com/metasploit-unleashed/
- 常用命令使用方法
search 搜索模块
use 利用模块
show options 显示模块需要的参数
set 设置参数
run 启动
- 主机扫描
Metasploit中提供了辅助模块用于活跃主机的探测,这些模块位于Metasploit源码路径的modules/auxiliary/scanner/discovery/目录中,主要有以下几个:
arp-sweep
ipv6_multicast_ping
ipv6_neighbonip
ipv6_neighbor_router_advertisement
udp_probe
udp_sweep
两个常用模块的说明如下:
arp-sweep:使用ARP请求枚举本地局域网络中的所有活跃主机。
udp-sweep通过发送UDP数据包探查指定主机是否活跃,并发现主机上的UDP服务。
在TCP/IP网络环境中,一台主机在发送数据帧前需要使用ARP(Address Resolution Protocol,地址解析协议)将目标地址转换成MAC地址,这个转换过程是通过发送一个ARP请求来完成的。如IP为A的主机发送一个ARP请求获取IP为B的MAC地址,此时如果IP为B的主机存在,那么它会向A发出一个回应。因此,可以通过发送ARP请求的方式很容易地获取同一子网上的活跃主机情况,这种技术也称为ARP扫描。
- 口令嗅探爆破
msf中与嗅探相关的模块可以通过sniffer搜索,
psnuffle 口令嗅探
>use auxiliary/sniffer/psnuffle
>show options
>run
ssh_login 口令爆破
>use auxiliary/scanner/ssh/ssh_login
>set RHOSTS 172.18.0.6
>set THREADS 50
>set PASS_FILE /usr/share/wordlists/sqlmap.txt
>set USERNAME root
>run
- Meterpreter
一个用于后渗透测试的辅助模块,可以生成可执行文件对目标主机进行一系列操作。
1、clearev命令:清除入侵痕迹
2、timestomp命令:改变文件的修改或访问时间
【技巧总结】Penetration Test Engineer[2]-Information gathering的更多相关文章
- 【技巧总结】Penetration Test Engineer[5]-Operating System Security(SQL Server、MySQL提权)
4.数据库安全基础 4.1.MSSQL 数据库角色权限 sysadmin:执行SQL Server中的任何动作 db_owner:可以执行数据库中技术所有动作的用户 public:数据库的每个合法用户 ...
- 【技巧总结】Penetration Test Engineer[3]-Web-Security(SQL注入、XXS、代码注入、命令执行、变量覆盖、XSS)
3.Web安全基础 3.1.HTTP协议 1)TCP/IP协议-HTTP 应用层:HTTP.FTP.TELNET.DNS.POP3 传输层:TCP.UDP 网络层:IP.ICMP.ARP 2)常用方法 ...
- 【技巧总结】Penetration Test Engineer[4]-Web-Security(文件处理、会话管理、访问控制、SSRF、反序列化漏洞)
Web安全基础2 3.8.文件处理 1)文件上传 一个正常的业务需求,问题在于控制上传合法文件. 防御文件上传 客户端javascript校验(通常校验扩展名) 检查MIME类型 检查内容是否合法 随 ...
- 【技巧总结】Penetration Test Engineer[1]-Basic
1.渗透测试基础 1.1.渗透测试分类 黑盒测试:从远程网络位置来评估目标网络基础设施,没有任何相关信息 白盒测试:内部发起,了解到关于目标环境的所有内部与底层知识 灰盒测试:结合两者优势,根据对目标 ...
- Shodan information gathering use parameter
1.we sue the Search Engines Shodan we can gather much information on the line web , such we want to ...
- OSCP Learning Notes - Information Gathering
Common Tools Google Exploit-DB/Google Hacking DB WHOIS Netcraft theharvester Example: Google search: ...
- Gathering Initial Troubleshooting Information for Analysis of ORA-4031 Errors on the Shared Pool
In this Document Purpose Troubleshooting Steps References APPLIES TO: Oracle Database - Enterp ...
- Penetration Testing、Security Testing、Automation Testing
相关学习资料 http://www.cnblogs.com/LittleHann/p/3823513.html http://www.cnblogs.com/LittleHann/p/3828927. ...
- Gathering Fingerprinting
1. Banner grabbing with Netcat Netcat is multipurpose networking tool that can be used to perform mu ...
随机推荐
- Trailing Zeroes (I) LightOJ - 1028(求因子个数)
题意: 给出一个N 求N有多少个别的进制的数有后导零 解析: 对于一个别的进制的数要转化为10进制 (我们暂且只分析二进制就好啦) An * 2^(n-1) + An-1 * 2^(n-2) + `` ...
- hbase 自定义过滤器
1.首先生成自定义过滤器,生成jar包,然后拷贝到服务器hbase目录的lib下. 1.1 自定义过滤器CustomFilter import com.google.protobuf.InvalidP ...
- 【题解】HAOI2018染色
好坑啊不开心…… 其实这题的想法还是比较简单粗暴的.题目明示恰好xxx,显然排除斜率二分这个玩意儿,那么不就只剩下容斥了嘛…… 令 \(A_{x}\) 为恰好出现了 \(S\) 次的至少有 \(x\) ...
- [洛谷P4819][中山市选]杀人游戏
题目大意:有一张$n$个点$m$条边的有向图,有一个关键点,如果你访问一个点,你会知道它连出的边中有没有关键点,以及若有的话是哪个.问最优策略下不访问关键点而知道关键点的概率 题解:发现若一个点不是关 ...
- 【NOIP&NOI】飞扬的小鸟 Flappy Bird
描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了水管或者掉在地上的话,便宣告 ...
- BZOJ 1208 宠物收养所 | 平衡树模板题
BZOJ 1208 宠物收养所 我犯过的错误:删除一个节点后没有update新的根节点,导致size错了! #include <cstdio> #include <cmath> ...
- Java之Stream流
Stream流的初步学习 初次学习Stream流的学习笔记,学习之前先了解一下函数式接口 概述 API是一个程序向使用者提供的一些方法,通过这些方法就能实现某些功能.所以对于流API来 说,重点是怎么 ...
- 2018 ACM-ICPC 中国大学生程序设计竞赛暨丝绸之路程序设计竞赛
三道大水题,其它题都不会做,真是尴尬和无奈啊…… 有想法,但是解决不了,感觉个人不会一些基本解法,终究还是个人学习的内容太少了 B. Goldbach /* 数值较小,<2^63,分解的两个素数 ...
- Python【读写Json文件】
indent=10:缩进10个空格
- linux(ubuntu) mysql安装使用
简单的安装一下: sudo apt-get install mysql-server apt-get isntall mysql-client sudo apt-get install libmysq ...