itextsharp pdf to image c# : Create a fillable pdf form from a pdf SDK control API wpf web page .net sharepoint Blackhat-Europe-09-Alonso-Rando-Fingerprinting-networks-metadata-whitepaper0-part1751

Disclosing Private Information from 
Metadata, hidden info and lost data 
Chema Alonso, Enrique Rando, Francisco Oca and Antonio Guzmán 
Abstract — Documents contain metadata and hidden information  that can be used to disclose private data and to 
fingerprint an organization and its network computers. This document shows what kinds of data can be found, how to 
extract them and proposes some solutions to the problem stated here.  
Index Terms — Metadata, fingerprinting, security, privacy 
——————————
!   
—————————— 
1  I
NTRODUCTION
he collaborative work in on documents justifies the need of an extra information attached 
to the documents, in order to allow coherent and consistent results. In an environment 
where social networks make the sharing of  resources  such an important  issue,  it  is 
necessary  to store  information  about documents  authors, the computers used  to  edit  the 
documents, software versions, printers where they were printed, and so on. Then, if necessary, 
it will be possible, to prove the authorship of a concrete piece of information, to undo the last 
changes, to recover a previous version of a document or even to settle responsibilities when 
authorities  want  to  investigate,  for  example,  the  management  of  the  digital  rights.  The 
techniques used to attach this extra information to a document, without interfering with its 
content, are based on Metadata. 
The concept of Metadata can be understood as information about the data. But it can also be 
understood as a structured description, optionally available to the general public, which helps to 
locate, identify, access and manage objects. Since Metadata are themselves data, it would be 
possible to define Metadata about Metadata too. This can be very useful, for example, when a 
given document has been the result of merging two or more previous documents.  
The most frequent objective of Metadata is the optimization of Internet searches. The additional 
information provided by Metadata allows to perform more accurate searches and to simplify the 
development  of  filters.  Therefore,  Metadata  emerge  as  a  solution  to  human-computer 
communication,  describing  the  content  and  structure  of  the  data.  Furthermore,  Metadata 
facilitate further conversion to different data formats and variable data presentation according to 
the environment features. 
Metadata are classified using two different criteria: content and variability. The first classification 
is  the most widely used.  You can easily  distinguish  among  Metadata  used to describe  a 
resource and Metadata used to describe the content of the resource. It is possible to split these 
two groups once more, for example, to separate Metadata used to describe the meaning of the 
contents from those used to describe the structure of the content; or to separate Metadata used 
to describe the resource itself from those which describe the life cycle of the resource, and so 
on. In terms of variability, on the other hand, the Metadata can be mutable or immutable. 
Obviously, the immutable Metadata do not change, a typical example would be the name of a 
file. 
Create a fillable pdf form from a pdf - C# PDF Field Edit Library: insert, delete, update pdf form field in C#.net, ASP.NET, MVC, Ajax, WPF
Online C# Tutorial to Insert, Delete and Update Fields in PDF Document
pdf save form data; chrome save pdf form
Create a fillable pdf form from a pdf - VB.NET PDF Field Edit library: insert, delete, update pdf form field in vb.net, ASP.NET, MVC, Ajax, WPF
How to Insert, Delete and Update Fields in PDF Document with VB.NET Demo Code
add text field to pdf acrobat; best pdf form creator
Disclosing Private Information from Metadata, hidden info and lost data 
Page 2 of 29 
The generation of Metadata can be manual or automatic. The manual process can be very 
laborious, depending on the format used for the Metadata and on their desired volume. In the 
automatic generation, software tools acquire the information they need without external help. 
However, only in few cases we can have a completely automatic Metadata generation, because 
some information is very difficult to extract with software tools. The most common techniques 
use a hybrid generation that starts with the resource generation itself. 
If the information changes Metadata must change too. When the modifications  are simple 
enough,  they  can  be  carried  out  automatically.  But  when  the  complexity  increases,  the 
modifications  usually  require  the  intervention  of  a  person.  In  addition,  the  destruction  of 
Metadata must be managed. In some cases, it is necessary to eliminate the Metadata along 
with their correspondent resources; in others, it is reasonable to preserve the Metadata after the 
resource destruction, for example, to monitor changes in a text document. 
But the most critical situation is the destruction of Metadata when they are related to a final 
resource version intended for publication. The main contribution of this work is a research about 
what kind of information stored as Metadata in the public documents on the Internet is not 
destroyed and how this information can be used as a basis for fingerprinting techniques. We 
have selected two kinds of documents very usual on the web: Microsoft Office documents and 
OpenOffice documents. 
METADATA
AND 
HIDDEN
INFORMATION
IN
OPENOFFICE
DOCUMENTS 
2.1
ODF
FILES 
ODF (Open Document Format) is the native file format used by OpenOffice, an open standard 
format, defined by OASIS and approved by ISO. In ODF, documents are stored as compressed 
ZIP archives containing a set of XML files with the document contents. If you use compression 
software to open an ODT document (text file created with OpenOffice Writer) you can find the 
following files: 
• meta.xml: Metadata related to the document. This file is not encrypted even if the 
document is password protected. 
• settings.xml: Information related to the document configuration and parameters. 
• content.xml: File with the main content of the document, therefore, the text. 
Figure 1: ODT file contents
C# Create PDF Library SDK to convert PDF from other file formats
Create fillable PDF document with fields. Load PDF from existing documents and image in SQL server. Load PDF from stream programmatically.
build pdf forms; adding image to pdf form
VB.NET Create PDF from OpenOffice to convert odt, odp files to PDF
Edit Bookmark. Metadata: Edit, Delete Metadata. Form Process. Create PDF document from OpenOffice Text Document with ODT, ODS, ODP forms into fillable PDF formats
pdf forms save; pdf form maker
Disclosing Private Information from Metadata, hidden info and lost data 
Page 3 of 29 
Although OpenOffice version 1 uses different file extensions than OpenOffice 2, documents are 
stored in a similar way in both versions. Do not forget that ODF was built as an evolution of the 
file formats used in OpenOffice 1. 
2.2
PERSONAL
DATA 
The first metadata generated using OpenOffice are created during the software installation and 
first execution. The software suite asks the user a set of personal data which, by default, will be 
attached to the documents created with this software. 
Figure 2: User data modification 
Some of these data will be stored within the documents created by OpenOffice. If we create a 
new text document and afterwards check the contents of the generated meta.xml file, we will 
find the following information: 
<?xml version="1.0" encoding="UTF-8" ?>  
-<office:document-meta xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" 
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" 
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" 
xmlns:ooo="http://openoffice.org/2004/office" office:version="1.0"> 
-
<office:meta> 
<meta:generator>
OpenOffice.org/2.3
$
Win32
OpenOffice.org_project/680m5$Build-
9221
</meta:generator>  
<meta:initial-creator>
MiNombre MiApellido
</meta:initial-creator>  
<meta:creation-date>
2008-08-11T11:33:23
</meta:creation-date>  
<meta:editing-cycles>
0
</meta:editing-cycles>  
<meta:editing-duration>PT0S</meta:editing-duration>  
<meta:user-defined meta:name="Info 1" />  
<meta:user-defined meta:name="Info 2" />  
<meta:user-defined meta:name="Info 3" />  
<meta:user-defined meta:name="Info 4" />  
<meta:document-statistic meta:table-count="0" meta:image-count="0" meta:object-count="0" 
meta:page-count="1" meta:paragraph-count="0" meta:word-count="0" meta:character-count="0" />  
</office:meta> 
</office:document-meta> 
Figure 3: meta.xml file 
We  can  find information  about  the  OpenOffice  version, the  operating  system,  and, within 
personal data, about the user name. Perhaps we want to show this information or maybe not. A 
user or a company should decide about it before publishing the document on the Internet, 
before mailing it or before making it public by any other method.  
C# Create PDF from OpenOffice to convert odt, odp files to PDF in
Create PDF document from OpenOffice Presentation in both .NET WinForms and ASP.NET NET control to change ODT, ODS, ODP forms to fillable PDF formats in Visual
edit pdf form; change font in pdf form
VB.NET Create PDF Library SDK to convert PDF from other file
Create fillable PDF document with fields in Visual Basic .NET application. Load PDF from existing documents and image in SQL server.
change font size in pdf fillable form; convert word to editable pdf form
Disclosing Private Information from Metadata, hidden info and lost data 
Page 4 of 29 
2.3
PRINTERS 
Among the data that can be potentially dangerous, because it reveals information about the 
company infrastructure, we have printer data. When you print a document with OpenOffice, and 
after it, you save the document; its settings.xml file stores information about the printer that has 
been used. 
… 
<config:config-item config:name="ClipAsCharacterAnchoredWriterFlyFrames" 
config:type="boolean">false</config:config-item>  
<config:config-item config:name="CurrentDatabaseDataSource" config:type="string" />  
<config:config-item config:name="DoNotCaptureDrawObjsOnPage" 
config:type="boolean">false</config:config-item>  
<config:config-item config:name="TableRowKeep" config:type="boolean">false</config:config-
item>  
<config:config-item config:name="PrinterName" config:type="string">
EPSON Stylus DX4000 
Series
</config:config-item>  
<config:config-item config:name="PrintFaxName" config:type="string" />  
<config:config-item config:name="ConsiderTextWrapOnObjPos" 
config:type="boolean">false</config:config-item>  
<config:config-item config:name="UseOldPrinterMetrics" 
config:type="boolean">false</config:config-item> 
Figure 4: printer information in settings.xml file 
This information may be important because it can denounce a forbidden action performed by a 
user or point directly to a specific user or machine uniquely. In terms of security this information 
could be even worse if the printer is shared on a server: 
… 
<config:config-item config:name="ClipAsCharacterAnchoredWriterFlyFrames" 
config:type="boolean">false</config:config-item>  
<config:config-item config:name="CurrentDatabaseDataSource" config:type="string" />  
<config:config-item config:name="DoNotCaptureDrawObjsOnPage" 
config:type="boolean">false</config:config-item>  
<config:config-item config:name="TableRowKeep" config:type="boolean">false</config:config-
item>  
<config:config-item config:name="PrinterName" config:type="string">
\\servidor\HP 2000C
</config:config-item>  
<config:config-item config:name="PrintFaxName" config:type="string" />  
<config:config-item config:name="ConsiderTextWrapOnObjPos" 
config:type="boolean">false</config:config-item>  
<config:config-item config:name="UseOldPrinterMetrics" 
config:type="boolean">false</config:config-item> 
Figure 5: Printer information described in UNC format in settings.xml file 
In this case, the printer appears in UNC format (Universal Naming Service), revealing both the 
server name and the correspondent resource. These data, for example, could be used by 
attackers to know the infrastructure of the internal network and to create a list of possible 
targets. 
2.5
T
EMPLATES
Templates are used to generate documents with predefined styles and formats. They are widely 
used because they allow using corporate documents and images comfortably. However, when a 
document is generated from a template, it stores references to the path location of the template 
in the meta.xml file: 
<?xml version="1.0" encoding="UTF-8" ?>  
- <office:document-meta xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" 
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" 
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" 
xmlns:ooo="http://openoffice.org/2004/office" office:version="1.0"> 
- <office:meta> 
<meta:generator>OpenOffice.org/2.3$Win32 OpenOffice.org_project/680m5$Build-
9221</meta:generator>  
VB.NET Create PDF from PowerPoint Library to convert pptx, ppt to
Convert multiple pages PowerPoint to fillable and editable PDF documents. Easy to create searchable and scanned PDF files from PowerPoint.
create a fillable pdf form; pdf form change font size
VB.NET Create PDF from Word Library to convert docx, doc to PDF in
formatting. Create PDF files from both DOC and DOCX formats. Convert multiple pages Word to fillable and editable PDF documents. Professional
add forms to pdf; pdf form creator
Disclosing Private Information from Metadata, hidden info and lost data 
Page 5 of 29 
<dc:title>NuevaPlantilla</dc:title>  
<meta:initial-creator>MiNombre MiApellido</meta:initial-creator>  
<meta:creation-date>2008-08-12T10:02:14</meta:creation-date>  
<meta:editing-cycles>1</meta:editing-cycles>  
<meta:editing-duration>PT0S</meta:editing-duration>  
<meta:template xlink:type="simple" xlink:actuate="onRequest" 
xlink:href="
../../Datos%20de%20programa/OpenOffice.org2/user/template/NuevaPlan
tilla.ott
" xlink:title="NuevaPlantilla" meta:date="2008-08-12T10:02:14" />  
<meta:user-defined meta:name="Info 1" />  
<meta:user-defined meta:name="Info 2" />  
<meta:user-defined meta:name="Info 3" />  
<meta:user-defined meta:name="Info 4" />  
<meta:document-statistic meta:table-count="0" meta:image-count="0" meta:object-count="0" 
meta:page-count="1" meta:paragraph-count="1" meta:word-count="0" meta:character-count="9" />  
</office:meta> 
</office:document-meta> 
Figure 6: Path to template in meta.xml file 
In the meta.xml file you can see the path to the template relative to the document location. This 
path may seem harmless and lacking the information that could put the system security at risk. 
However, if the document is stored in a folder located outside the user's profile, this path offers 
information about the user account. 
... 
<meta:template xlink:type="simple" xlink:actuate="onRequest" 
xlink:href="
../Documents%20and%20Settings/UserAccount/
Datos%20de%20programa/OpenOffice
.org2/user/template/NuevaPlantilla.ott" xlink:title="NuevaPlantilla" meta:date="2008-08-
12T10:02:14" />  
<meta:user-defined meta:name="Info 1" />  
... 
Figure 7: Path to template in user’s profile in meta.xml file 
In this case, the document has been stored in "C: \" and as a result, the path to the template 
reveals the folder that contains the user's profile in "C: \ Documents and Settings". The name of 
this folder is usually the name of the user account, in this example "UserAccount." It should be 
noted that, in certain cases, the name of this folder contains data about the domain to which the 
user belongs. This information is usually included in the name of the folder with the user's profile 
with  the  structure  "UserAccount.DomainName"  offering  critical  information  to  a  potential 
attacker. 
Similarly, the document could have been saved on another drive different from the template, 
obtaining in this case a complete path to identify the disk drive: 
… 
<meta:template xlink:type="simple" xlink:actuate="onRequest" 
xlink:href="
/C:/Documents%20and%20Settings/papa/
Datos%20de%20programa/OpenOffice.org2/u
ser/template/NuevaPlantilla.ott" xlink:title="NuevaPlantilla" meta:date="2008-08-12T10:02:14" />  
<meta:user-defined meta:name="Info 1" />  
Figure 8: Full path to template in meta.xml file 
Examples shown above have all been performed on Windows machines, but the results do not 
differ much in Linux machines. In this case, paths to templates can contain information about 
user’s $HOME Path: 
… 
<meta:template xlink:type="simple" xlink:actuate="onRequest" xlink:role="template"  
xlink:href="
/home/pruebas/.
openoffice.org2/user/template/PlantillaNueva.ott" 
xlink:title="NuevaPlantilla" meta:date="2008-06-30T09:13:20" />  
<meta:user-defined meta:name="Info 1" />  
Figure 9: Full path to template related to $HOME in meta.xml file 
Logically, if the template is located on a network server, the information in UNC format shows 
the server’s name and the shared resource, again allowing a potential attacker to reconstruct 
the network structure of the organization. 
VB.NET Create PDF from Excel Library to convert xlsx, xls to PDF
Link: Edit URL. Bookmark: Edit Bookmark. Metadata: Edit, Delete Metadata. Form Process. Create fillable and editable PDF documents from Excel in Visual
change font pdf form; create a fillable pdf form
C# Create PDF from Excel Library to convert xlsx, xls to PDF in C#
Create fillable and editable PDF documents from Excel in both .NET WinForms and ASP.NET. Create searchable and scanned PDF files from Excel.
add text field pdf; create a fillable pdf form in word
Disclosing Private Information from Metadata, hidden info and lost data 
Page 6 of 29 
2.6
E
MBEDDED AND LINKED 
D
OCUMENTS
One of the options provided by almost all of the current office software is linking and embedding 
documents. In the case of linking files, there is a reference to the linked document in the main 
document, in the form of a relative path, when it is possible, and as an absolute path when there 
is  no  other  alternative. If the document is  linked  on the same computer where the main 
document  is,  the  result  will  be, in  general,  similar  the  results  shown  in  the  last  section. 
Therefore, a potential attacker could disclose sensitive information about user accounts or file 
locations.  
If the linked document is stored on another computer, the information disclosed to the attacker 
is very useful again: 
… 
<text:p text:style-name="Standard"> 
<draw:frame draw:style-name="fr1" draw:name="gráficos1" text:anchor-type="paragraph" 
svg:width="16.999cm" svg:height="6.369cm" draw:z-index="0"> 
<draw:image xlink:href="
//desktop/confidenciales/Dibujo.bmp
" xlink:type="simple" 
xlink:show="embed" xlink:actuate="onLoad" draw:filter-name="<Todos los formatos>" />  
</draw:frame> 
</text:p> 
Figure 10: Linked document 
When the file is embedded in the document, not linked, there are not routes implied in the 
process, but we have to face new potential problems of leakage of information, because they 
may contain metadata and hidden information. 
Suppose that we embed a JPG image (with its metadata in EXIF format) in an ODF document. 
In  the  example,  one  of  such  EXIF metadata  is  a  miniature  that  looks  different  from  the 
embedded image, thus showing that the image has been manipulated. 
All the embedded files are included in the master document, so opening the ODT file with a 
decompressor, you can see that there is a folder called Pictures, and inside it is the embedded 
image, but under another name.  
Figure 11: Embedded image in Pictures folder 
If this image is extracted and analyzed, it has all the original image’s metadata attached and, of 
course, the thumbnail that shows its original state. It´s possible to use any EXIF reader tool to 
analyze the thumbnail attached to the pictured to prove this as can be seen in Figure 12. 
Figure 6 EXIF Metadata from an embedded image
C# Create PDF from PowerPoint Library to convert pptx, ppt to PDF
Convert multiple pages PowerPoint to fillable and editable PDF documents. Easy to create searchable and scanned PDF files from PowerPoint.
adding text fields to a pdf; add photo to pdf form
Disclosing Private Information from Metadata, hidden info and lost data 
Page 7 of 29 
Figure 12: Original thumbnail discover image’s manipulations 
2.7
M
ODIFICATIONS
One of the features offered by OpenOffice Writer is to track changes in documents. This is 
useful when a document is being developed by multiple users or when you want to log all the 
modifications. The submenu "modification" of the Edit menu can activate this feature, as well as 
make visible or hide the changes. 
A user can work on a document with this option activated, even by negligence, so that if the 
document is published without eliminating its history, anyone can guess if something has been 
removed or added, and by whom, and when these changes were made. 
Figure 13: Changes aren´t displayed 
Figure 14 shows that if you left the cursor on a change in the document for a few moments, 
there is a message indicating who made it and when. 
Disclosing Private Information from Metadata, hidden info and lost data 
Page 8 of 29 
Figure 14: Changes are displayed 
All of this information about the change history is stored in the file content.xml: 
… 
<text:tracked-changes> 
<text:changed-region text:id="ct110732472"> 
<text:deletion> 
<office:change-info> 
<dc:creator>MiNombre MiApellido</dc:creator>  
<dc:date>2008-08-13T13:07:00</dc:date>  
</office:change-info> 
<text:p text:style-name="Standard">lamentablemente patética</text:p>  
</text:deletion> 
</text:changed-region> 
 
2.8
H
IDDEN PARAGRAPHS
Another option offered by OpenOffice is to hide text or paragraphs. This functionality allows 
working on a document in a display with hidden paragraphs, ready to print, and in another 
display,  with  all  the  paragraphs  visible,  for  example,  with  the  information  for  editing  the 
document. This feature is activated including a special field in the paragraph: 
We can turn on or turn off the display of hidden text using the corresponding menu item "View". 
So, if we have a document with hidden paragraphs, but we do not have the option of seeing 
them, we are working with a display that does not show all the information that the document 
has
Figure 15 Document with hidden paragraphs 
Disclosing Private Information from Metadata, hidden info and lost data 
Page 9 of 29 
Figure 16: Document displaying hidden paragraphs 
2.9
H
IDDEN INFORMATION DUE TO THE FORMAT
Another type of hidden text or content is the one that is not visible due to the document format: 
for example, other content, such as an image, overlaps with it or the text is in the same color 
that the document background. Of course, this kind of content should be carefully reviewed 
before publishing the document. 
2.10
N
OTES
,
H
EADERS
,
FOOTNOTES AND COMMENTS
In an OpenOffice document there are a number of places where you can enter information that 
may  go unnoticed in subsequent revisions. For example, in headers and footnotes, online 
annotations or comments, that can be entered using the "Notes" option in the "Insert" menu. 
These notes, unless you specify it, are not included when the document is printed or exported, 
for example, to PDF format, so it is easy to forget this information in the reviews. It has to be 
considered that some elements can be defined as "not printable"; therefore, a detailed revision 
of a document should not be limited to reading a printed version. 
Figure 17: Defining a document as printable or not printable (Spanish version, what a great language!) 
Disclosing Private Information from Metadata, hidden info and lost data 
Page 10 of 29 
2.11
C
USTOMIZED METADATA
Metadata, as it was discussed in the introduction of this document, are not harmful themselves, 
and on the contrary, they can be very useful for certain applications. In OpenOffice, the user is 
able to  include  customized  Metadata  in  his/her documents and  to  add information to  the 
document using the "Properties" option from the File menu. In addition to the customized 
Metadata, the document may store information if it is created from another previous document, 
inherited from this one. 
Figure 18: Customized metadata 
Sometimes, this customized information is used as a working tool in the process of document 
elaboration and may include corporate or personal opinions, more or less politically correct, 
identifications and other personal data or references to documentary sources. Of course, all this 
information must be reviewed before the document publication. 
2.12
D
ATABASES
The  combination of documents with databases must be considered  too. One of  the most 
important functionalities provided by Office applications nowadays is the ability to generate 
models that, combined with databases, allow customized and automatic documents generation. 
These models, designed from mail merging, deserve a special consideration, since they contain 
information that allows describing the database they are taking the information from. All the 
information related to the database can be found in the settings.xml file. There is information 
about the name of the database and about the table used for the combination. 
<config:config-item config:name="CurrentDatabaseDataSource" 
config:type="string">Referencias</config:config-item> 
<config:config-item config:name="CurrentDatabaseCommandType" config:type="int">0</config:config-
item> 
<config:config-item config:name="CurrentDatabaseCommand" 
config:type="string">Contactos</config:config-item> 
<config:config-item config:name="PrintDrawings" config:type="boolean">true</config:config-item> 
Figure 19: Information related to database in settings.xml 
Documents you may be interested
Documents you may be interested