๐ ไธญๆ README | ๐ Releases Download | ๐ ไฝฟ็จๆๆกฃ Docs
fofax is a fofa query tool written in go, positioned as a command-line tool and characterized by simplicity and speed. The following features are currently available:
- Basic FOFA syntax queries
- Icon Hash local/online calculation query
- Asset filtering
- Opening in browser
- Linking other security tools
- More (waiting for your feedback after using) ......
In addition to this it is possible to customize fx syntax queries, and users can write their own specific fx query rules via a configuration file in yaml format.
Click on the Release download link and choose the appropriate release for your system architecture.
Unzip the downloaded fofax archive and recommend placing it in the /usr/local/bin/
directory, so that you can run fofax commands from any directory.
tar -zxvf ~/Downloads/fofax_v0.1.11_darwin_amd64.tar.gz -C /usr/local/bin/.
The first time you run the fofax command a configuration file is automatically generated, located at ~/.config/fofax/fofax.yaml
.
fofax
____ ____ _ __
/ __/____ / __/____ _| |/ /
/ /_ / __ \ / /_ / __ `/| /
/ __// /_/ // __// /_/ // |
/_/ \____//_/ \__,_//_/|_|
fofax.xiecat.fun
2021/12/23 21:21:28 [SUCC] create config file /Users/user/.config/fofax/fofax.yaml. please modify and use
The next step is to configure this configuration file. Generally you only need to configure email
and key
.
vim ~/.config/fofax/fofax.yaml
# fofa api email
fofa-email: ******@gmail.com
# fofa api key
fofakey: ***************
Unzip the archive and run fofax.exe for the first time to generate a fofax.yaml configuration file in the same level directory. Then open this configuration file and fill in email
and key
.
Without any parameters, in addition to the ASCII logo, a random usage hint will be output.
fofax
____ ____ _ __
/ __/____ / __/____ _| |/ /
/ /_ / __ \ / /_ / __ `/| /
/ __// /_/ // __// /_/ // |
/_/ \____//_/ \__,_//_/|_|
fofax.xiecat.fun
fofaX is a command line fofa query tool, simple is the best!
Tips:
Comment: Search google-reverse in fx, the -fe parameter must be added to the query when using the extension
Usage: fofax -q 'fx="google-reverse"' -fe
You can use fofax -h
to display help information.
fofax -h
fofaX is a command line fofa query tool, simple is the best!
Usage:
fofax [flags]
Flags:
CONFIGS:
-email, -fofa-email string Fofa API Email
-key, -fofakey string Fofa API Key
-p, -proxy string proxy for http like http://127.0.0.1:8080
-fofa-url string Fofa url (default "https://fofa.so")
-debug Debug mode
FILTERS:
-fs, -fetch-size int The maximum number of query (default 100)
-e, -exclude Exclude the honeypot.
-ec, -exclude-country-cn Exclude CN.
-ffi, -fetch-fullHost-info URL fetch, with scheme, hostname, port
-fto, -fetch-titles-ofDomain Fetch website title
SINGLE QUERY/ERT/ICON:
-q, -query string FoFa query statement
-uc, -url-cert string Enter the certificate of the https URL to query
-iu, -url-to-icon-hash string Enter the URL of an icon, calculate it and query it
-if, -icon-file-path string Calculate the hash of the local icon file, then query it
MULTIPLE QUERY/CERT/ICON:
-qf, -query-file string Load files, query multiple statements
-ucf, -url-cert-file string Read the URL from the file, calculate the cert and then query it
-iuf, -icon-hash-url-file string Retrieve the URL from the file, calculate the icon hash and query it
FX GRAMMER:
-g, -gen string Generate fx statement files eg: default_fx.yaml
-fd, -fxdir string fxdir directory (default "/Users/user/.config/fofax/fxrules")
-l, -lists List of fx statements
-lt, -list-tags List fx tags
-s, -search string Search for fx statements. Statements are separated by semicolons eg: id=fx-2021-01;query="jupyter Unauth"
-tree Print syntax tree
-fe, -fofa-ext Using extended syntax(fx)
-ss, -show-single string Display a single fx message
OTHER OPTIONS:
-config string fofax configuration file.The file reading order(fofax.yaml,/Users/user/.config/fofax/fofax.yaml,/etc/fofa.yaml) (default "/Users/user/.config/fofax/fofax.yaml")
-v, -version Show fofaX version
-use Syntax queries
-open Open with your browser only support pipline/-q/-uc/-iu/-if
-no-limit-open No limit to the number of openings in your browser
Use the -use
argument to display FOFA syntax query rules.
fofax -use
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Query โ Explanation โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ title="beijing" โ ไปๆ ้ขไธญๆ็ดข"ๅไบฌ" โ
โ header="elastic" โ ไปhttpๅคดไธญๆ็ดข"elastic" โ
โ body="็ฝ็ป็ฉบ้ดๆต็ป" โ ไปhtmlๆญฃๆไธญๆ็ดข"็ฝ็ป็ฉบ้ดๆต็ป" โ
โ title="beijing" โ ไปๆ ้ขไธญๆ็ดข"ๅไบฌ" โ
โ header="elastic" โ ไปhttpๅคดไธญๆ็ดข"elastic" โ
โ body="็ฝ็ป็ฉบ้ดๆต็ป" โ ไปhtmlๆญฃๆไธญๆ็ดข"็ฝ็ป็ฉบ้ดๆต็ป" โ
โ fid="kIlUsGZ8pT6AtgKSKD63iw==" โ ๆฅๆพ็ธๅ็็ฝ็ซๆ็บน โ
โ domain="google.com" โ ๆ็ดขๆ นๅๅๅธฆๆgoogle.com็็ฝ็ซ โ
โ icp="ไบฌICP่ฏ030173ๅท" โ ๆฅๆพๅคๆกๅทไธบ"ไบฌICP่ฏ030173ๅท"็็ฝ็ซ โ
โ js_name="js/jquery.js" โ ๆฅๆพ็ฝ็ซๆญฃๆไธญๅ
ๅซjs/jquery.js็่ตไบง โ
โ js_md5="82ac3f14327a8b7ba49baa208d4eaa15" โ ๆฅๆพjsๆบ็ ไธไนๅน้
็่ตไบง โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
There are two ways to query app="APACHE-Solr"
, which will output 100 hosts by default without specifying the number, and will de-duplicate the data by default.
fofax -q 'app="APACHE-Solr"'
2021/12/23 20:17:32 [SUCC] Fetch Data From FoFa: [100/30830]
54.114.20.168:8443
193.8.4.43:8983
208.37.227.95:8983
3.20.255.140:8983
3.114.85.178:8983
82.142.82.197:8983
159.39.10.212:8983
199.102.27.69:8983
โฆโฆโฆโฆ
echo 'app="APACHE-Solr"' | fofax
2021/12/23 20:17:59 [SUCC] Fetch Data From FoFa: [100/30830]
54.114.20.168:8443
193.8.4.43:8983
208.37.227.95:8983
3.20.255.140:8983
3.114.85.178:8983
82.142.82.197:8983
159.39.10.212:8983
199.102.27.69:8983
โฆโฆโฆโฆ
echo 'app="APACHE-Solr"' | fofax
2021/12/23 20:17:59 [SUCC] Fetch Data From FoFa: [100/30830]
54.114.20.168:8443
193.8.4.43:8983
208.37.227.95:8983
3.20.255.140:8983
3.114.85.178:8983
82.142.82.197:8983
159.39.10.212:8983
199.102.27.69:8983
............
echo 'app="APACHE-Solr"' | fofax -fs 5
2021/12/23 20:19:00 [SUCC] Fetch Data From FoFa: [5/30830]
13.57.71.190:8443
165.22.215.32:8983
184.73.40.143:8443
3.20.255.140:8983
As above, only 4 data are output because fofax automatically de-duplicates the data.
Add the -e
argument to exclude honeypots.
echo 'app="APACHE-Solr"' | fofax -fs 10 -e
2021/12/23 22:56:14 [SUCC] Fetch Data From FoFa: [10/30849]
13.126.128.253:80
185.22.235.14:8983
151.248.126.4:8983
20.71.77.183:80
23.102.46.20:443
15.113.170.101:8443
52.58.201.109:80
Add the -ec
parameter to exclude data from China.
echo 'app="APACHE-Solr"' | fofax -fs 10 -ec
2021/12/23 22:56:36 [SUCC] Fetch Data From FoFa: [10/26044]
15.113.170.101:8443
52.58.201.109:80
13.126.128.253:80
185.22.235.14:8983
151.248.126.4:8983
20.71.77.183:80
23.102.46.20:443
Add the -ffi
parameter to get the corresponding URL directly based on the query statement ([scheme]://[host]:[port]).
echo 'app="APACHE-Solr"' | fofax -fs 5
2021/12/23 20:21:03 [SUCC] Fetch Data From FoFa: [5/30830]
https://184.73.40.143:8443
http://120.24.42.244:8983
https://13.57.71.190:8443
http://165.22.215.32:8983
echo 'domain="baidu.com" && status_code="200"' | fofax -fs 10 -fto
2021/12/23 20:21:19 [SUCC] Fetch Data From FoFa: [10/1124]
https://home.baidu.com [ๅ
ณไบ็พๅบฆ]
http://research.baidu.com [Baidu Research]
http://fecs.baidu.com [FECS - Front End Code Style Suite]
http://yuntu.baidu.com [ไผไธๅพ่ฐฑ]
https://ditu.baidu.com [็พๅบฆๅฐๅพ]
https://sp2.baidu.com [็พๅบฆไธไธ๏ผไฝ ๅฐฑ็ฅ้]
https://tushuo.baidu.com [ๅพ่ฏด]
https://ocpc.baidu.com [็พๅบฆ oCPC ๅผๅ่
ไธญๅฟ]
https://naotu.baidu.com [็พๅบฆ่ๅพ - ไพฟๆท็ๆ็ปดๅทฅๅ
ท]
http://usa.baidu.com [Baidu USA]
Add the -debug
parameter to enable Debug detail mode.
echo 'app="APACHE-Solr"' | fofax -fs 5 -ffi -debug
2021/12/25 21:28:57 [DEBUG] FoFa Size : 5
2021/12/25 21:28:57 [DEBUG] FoFa Query of: app="APACHE-Solr"
2021/12/25 21:28:57 [DEBUG] https://fofa.so/api/v1/search/all?email=**********@gmail.com&key=**************************&qbase64=YXBwPSJBUEFDSEUtU29sciI=&size=5&page=1&fields=protocol,ip,port,host
2021/12/25 21:28:57 [DEBUG] Resp Time: 432/millis
2021/12/25 21:28:57 [SUCC] Fetch Data From FoFa: [5/30942]
http://35.183.115.103
http://3.17.203.145:8983
http://195.201.119.15:49154
https://18.169.23.120
http://174.138.127.51:8983
echo 'app="APACHE-Solr"' | fofax -open
There are two ways to do this, the first is to query directly based on the URL that provided the icon.
fofax -iu https://www.baidu.com/favicon.ico -fs 5
2021/12/23 20:21:59 [SUCC] Fetch Data From FoFa: [5/13284]
47.98.104.77:8088
154.39.217.22:80
xueshu.mrsb.tk:80
154.39.217.2:80
154.39.217.28:80
The second one is to calculate hash and query based on local icon file.
wget https://www.baidu.com/favicon.ico
fofax -if favicon.ico -fs 5
2021/12/23 21:25:24 [SUCC] Fetch Data From FoFa: [5/13284]
47.98.104.77:8088
154.39.217.22:80
xueshu.mrsb.tk:80
154.39.217.2:80
154.39.217.28:80
fofax -fs 5 -uc https://www.baidu.com/
2021/12/23 21:29:54 [SUCC] Fetch Data From FoFa: [5/361619]
180.97.93.146:443
180.97.93.65:443
112.3.25.49:443
itv.leiqiang8.cn:80
owa2.leiqiang8.cn:80
When using fofa to do information collection or other things, it is possible that the query statement will be very, very long and not easy to remember, so we can't just take a small book to remember the fofa query statement.
This time, you can use fofax's fx function. Currently fofax has dozens of built-in fx syntax query rules, users can directly use the corresponding parameters to query. You can also write your own specific fx syntax query rules via yaml format configuration file.
fofax -l
โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโฌโโโโโโโโโโโโโโฌโโโโโโโโ
โ Id โ Query โ RuleName โ Author โ Tag โ Type โ
โโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโค
โ fx-2021-1001 โ google-reverse โ Googleๅไปฃๆๅกๅจ โ fofa โ google โ ๅ
็ฝฎ โ
โ fx-2021-1002 โ python-simplehttp โ Python SimpleHTTP โ fofa โ python โ ๅ
็ฝฎ โ
โ fx-2021-1003 โ data-leak โ ็คพๅทฅๅบ โ fofa โ fun โ ๅ
็ฝฎ โ
โ fx-2021-1004 โ hfs-rce โ ๅญๅจๅฝไปคๆง่ก็HFSๆๅก โ fofa โ fun โ ๅ
็ฝฎ โ
โ fx-2021-1005 โ satellite-ftp โ ไธ้ฎๆฅๅซๆFTP๏ผ โ fofa โ fun โ ๅ
็ฝฎ โ
โ fx-2021-1006 โ mk-mining โ mk่ทฏ็ฑๅจๅ
จ็ๆ็ฟๆๆ โ fofa โ fun โ ๅ
็ฝฎ โ
โ fx-2021-1007 โ ss-manager-login โ ss-Manager ็ปๅฝ โ fofa โ fun โ ๅ
็ฝฎ โ
โ fx-2021-1008 โ heating-monitor โ ไพๆ็ๆง็ณป็ป โ fofa โ fun โ ๅ
็ฝฎ โ
โ fx-2021-1009 โ free-proxy โ ๅ
่ดนไปฃ็ๆฑ โ fofa โ fun โ ๅ
็ฝฎ โ
โ fx-2021-1010 โ honeypot โ ่็ฝ โ fofa โ fun โ ๅ
็ฝฎ โ
โ fx-2021-1011 โ hacked-website โ ่ขซๆ้ป็็ซ็น โ fofa โ fun โ ๅ
็ฝฎ โ
โ fx-2021-1012 โ jupyter-unauth โ Jupyter ๆชๆๆ โ xiecat โ unauth โ ๅ
็ฝฎ โ
โ fx-2021-11001 โ APACHE-ActiveMQ โ APACHE ActiveMQ โ fofa โ log4j2,fofa โ ๅ
็ฝฎ โ
โ fx-2021-11002 โ Apache_OFBiz โ Apache OFBiz โ fofa โ log4j2,fofa โ ๅ
็ฝฎ โ
โ fx-2021-11003 โ Jenkins โ Jenkins โ fofa โ log4j2,fofa โ ๅ
็ฝฎ โ
โ fx-2021-11004 โ RabbitMQ โ RabbitMQ โ fofa โ log4j2,fofa โ ๅ
็ฝฎ โ
โ fx-2021-11005 โ Apache-log4j2-Web โ Apache log4j2 Web โ fofa โ log4j2,fofa โ ๅ
็ฝฎ โ
โ fx-2021-11006 โ Jedis โ Jedis โ fofa โ log4j2,fofa โ ๅ
็ฝฎ โ
โ fx-2021-11007 โ APACHE-tika โ APACHE tika โ fofa โ log4j2,fofa โ ๅ
็ฝฎ โ
โโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโ
fofax -ss fx-2021-1001
fx-2021-1001 fx-2021-1001
โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Name โ Value โ
โโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ ID โ fx-2021-1001 โ
โ Query โ google-reverse โ
โ RuleName โ Googleๅไปฃๆๅกๅจ โ
โ RuleEnglish โ Google Reverse proxy โ
โ Author โ fofa โ
โ FofaQuery โ body="var c = Array.prototype.slice.call(arguments, 1);return function() {var d=c.slice();" โ
โ Tag โ google โ
โ Type โ ๅ
็ฝฎ โ
โ Description โ ไธ็จๆไปฃ็ๅฐฑๅฏไปฅ่ฎฟ้ฎ็Googleๆ็ดข๏ผไฝๆ็ดข่ฎฐๅฝๅฏ่ฝไผ่ขซ่ฎฐๅฝใ โ
โ FileDir โ โ
โโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
[~] fofax -q 'fx="google-reverse"' -fe -fs 5
2021/12/23 22:27:02 [SUCC] fx query id:google-reverse
2021/12/23 22:27:03 [SUCC] Fetch Data From FoFa: [5/5834]
54.76.26.205:10000
47.74.3.55:80
47.90.7.161:443
23.83.249.79:443
45.76.10.197:8081
fofax -q 'fx="google-reverse"' -fe -open
2021/12/23 22:22:21 [SUCC] fx query id:google-reverse
2021/12/23 22:22:21 [SUCC] the query body="var c = Array.prototype.slice.call(arguments, 1);return function() {var d=c.slice();" will be opened with a browser
An example of using fofa to collect information about a target is given below.
A template file is generated by using -g
and specifying the path to the generated file name.
fofax -g .config/fofax/fxrules/info-gathering.yaml
2021/12/24 20:09:27 [INFO] Will Write Plugin file: .config/fofax/fxrules/info-gathering.yaml
Check this yaml file, its contents are as follows.
id: fx-2021-01
query: ๆฅ่ฏข็ๅญ็ฌฆไธฒ็จไบfx="jupyter Unauth" eg:(jupyter Unauth)
rule_name: ่งๅๅ็งฐ eg:(jupyter ๆชๆๆ)
rule_english: jupyter unauthorized
description: ่งๅๆ่ฟฐ
author: ไฝ่
<้ฎ็ฎฑ>eg:(xiecat)
fofa_query: fofa่ฏญๅฅ eg:(body="ipython-main-app" && title="Home Page - Select or create a notebook")"
tag:
- ๆ ็ญพ1 eg(unauthorized)
- ๆ ็ญพ2
source: ่ฏญๅฅๆฅๆบ
Follow the above instructions and modify the corresponding content to bring in a new fx syntax rule, regarding the path of this file, please put it in the directory ~/.config/fofax/fxrules/
after it is written.
For easy reproduction, the details are as follows (note that the title is filled with your target name)
id: fx-2021-01
query: redteam-info-gathering
rule_name: ็บข้ไฟกๆฏๆถ้
rule_english: redteam-info-gathering
description: ไฝฟ็จfofa้ๅฏนๆไธช็ฎๆ ่ฟ่ก็บข้ๅธธ่ง็้ซๅ
ณๆณจCMS/OA็ณป็ป็ไฟกๆฏๆถ้
author: xiecat
fofa_query: title="Target" && (title="ๅนณๅฐ" || title="OA" || title="็ณป็ป" || title="ๅๅ" || title="ๅๅ
ฌ" || title="่ด่ฟ" || title="ๆณๅพฎ" || title="็จๅ" || title="็ฎก็" || title="ๅๅฐ" || title="็ปๅฝ" || title="login" || title="admin") && country="CN"
tag:
- redteam
source:
The following can use this fx query rule, this query can not be said to be inconvenient.
fofax -q 'fx="redteam-info-gathering"' -fe -ffi
2021/12/25 21:31:01 [SUCC] fx query id:redteam-info-gathering
2021/12/25 21:31:01 [SUCC] Fetch Data From FoFa: [27/27]
http://60.205.169.36:9080
https://43.243.13.187
http://806f52.ylhskhgyn.com
https://119.28.47.98:8443
http://124.70.197.255:8088
https://223.72.236.165
http://192.144.212.92:8080
https://114.255.204.149
......
Once the red team information is collected, the collected assets can be handed over to the live probing tool, fingerprinting tool and vulnerability scanning tool for live probing, fingerprinting and vulnerability detection.
CVE-2021-43798 Grafana Unauthorized Directory Traversal.
Pass the data obtained by fofax to nuclei and then use the CVE-2021-43798 Template to vulnerability in batch.